Показать данные функции, не мигая с Volley в Android Studio - PullRequest
1 голос
/ 27 мая 2019

В последнее время я работаю над проектом Android с Volley для регистрации и для дальнейшей работы, я могу сделать функцию для вставки, а другая для извлечения данных.При нажатии кнопки вставки вызывается функция «Вставить», и данные вставляются в базу данных через залп, и одновременно вызывается функция поиска.Но когда USER нажал кнопку и вызвал функцию, тогда показанные данные (вставленные в базу данных) с эффектом мигания выглядят как загрузка.

Я хочу избавиться от этого эффекта.Я хочу, чтобы данные отображались плавно, без эффекта моргания.Я ищу, но не могу найти решение.Пожалуйста, предложите мне решение. Я новичок, поэтому любезно короток и эффективен.

package com.darkcoderz.parsejson;

public class MainActivity extends AppCompatActivity {
private Context mContext;
private Activity mActivity;

//private CoordinatorLayout mCLayout;
private TextView mTextView;
private String mJSONURLString = "http://192.168.10.4/volley/api.php";
String url = "http://192.168.10.4/volley/register.php";
private EditText sms;
private Button sendsms;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Get the application context
    //mContext = getApplicationContext();
    //mActivity = MainActivity.this;

    // Get the widget reference from XML layout
    //mCLayout = (CoordinatorLayout) findViewById(R.id.coordinator_layout);
    mTextView = (TextView) findViewById(R.id.tv);

    sms = (EditText) findViewById(R.id.sms);
    sendsms = (Button) findViewById(R.id.sendsms);


    final Handler firesms = new Handler();
    firesms.post(new Runnable() {
        @Override
        public void run() {
            getdata();
            firesms.postDelayed(this, 100);
        }
    });

    sendsms.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            reg();
        }
    });

    getdata();
}

 //    insert
  public void reg()
 {
final String msg = sms.getText().toString();
StringRequest stringreq = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
        if (response.equals("success"))
        {
            Toast.makeText(MainActivity.this, "Registration Successfull!", Toast.LENGTH_SHORT).show();
        }
        else
        {
            Toast.makeText(MainActivity.this, "Username Already Exist!", Toast.LENGTH_SHORT).show();
        }

    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        Toast.makeText(MainActivity.this, "Great Error "+error.toString(), Toast.LENGTH_LONG).show();
    }
})
{
    @Override
    protected Map<String, String> getParams() throws AuthFailureError {
        Map<String,String> params = new HashMap<>();
        params.put("sms",msg);
        return params;
    }
};
RequestQueue reqest = Volley.newRequestQueue(MainActivity.this);
reqest.add(stringreq);

}

private void getdata() {

            // Empty the TextView
            mTextView.setText("");

            // Initialize a new RequestQueue instance
            RequestQueue requestQueue = Volley.newRequestQueue(MainActivity.this);

            // Initialize a new JsonArrayRequest instance
            JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Request.Method.GET, mJSONURLString, null, new Response.Listener<JSONArray>() {
                @Override
                public void onResponse(JSONArray response) {
                    // Do something with response
                    //mTextView.setText(response.toString());

                    // Process the JSON
                    try{
                        // Loop through the array elements
                        for(int i=0;i<response.length();i++){
                            // Get current json object
                            JSONObject student = response.getJSONObject(i);

                            // Get the current student (json object) data
             //                                String firstName = student.getString("fname");
                //                                String lastName = student.getString("lname");
                            String age = student.getString("email");

                            // Display the formatted json data in text view
                            mTextView.append("SMS : " + age);
                            mTextView.append("\n\n");
                        }
                    }catch (JSONException e){
                        e.printStackTrace();
                    }
                }
            },
                    new Response.ErrorListener(){
                        @Override
                        public void onErrorResponse(VolleyError error){
                            // Do something when error occurred

                            Toast.makeText(mContext, "Something Went Wrong", Toast.LENGTH_SHORT).show();
                        }
                    }
            );

            // Add JsonArrayRequest to the RequestQueue
            requestQueue.add(jsonArrayRequest);

}

}

1 Ответ

0 голосов
/ 27 мая 2019
private void getdata() {

        // Empty the TextView
        mTextView.setText("");

        // Initialize a new RequestQueue instance
        RequestQueue requestQueue = Volley.newRequestQueue(MainActivity.this);

        // Initialize a new JsonArrayRequest instance
        JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Request.Method.GET, mJSONURLString, null, new Response.Listener<JSONArray>() {
            @Override
            public void onResponse(JSONArray response) {
                //before parsing check your response is in JSONArray Format or JSONObject format
                // Process the JSON
                try{

                }catch (JSONException e){
                    e.printStackTrace();
                   //print here to know JSONException if exists 
                   Toast.makeText(mContext, "Exception"+e.toString(), Toast.LENGTH_SHORT).show();
                }
                }
            }
        },
                new Response.ErrorListener(){
                    @Override
                    public void onErrorResponse(VolleyError error){
                        // Do something when error occurred

                        Toast.makeText(mContext, "Something Went Wrong", Toast.LENGTH_SHORT).show();
                    }
                }
        );

        // Add JsonArrayRequest to the RequestQueue
        requestQueue.add(jsonArrayRequest);
   }
...