在Android Studio中通过Volley显示功能数据而不会闪烁

时间:2019-05-27 07:37:44

标签: java android android-volley

最近,我正在与Volley合作进行Android项目进行注册和进一步操作,我可以进行插入功能,而其他功能则用于检索数据。当插入按钮时,单击“ Insert”函数被调用,并且数据已经通过凌空插入到数据库中,同时还调用了检索函数。但是,当用户单击按钮并调用该函数时,显示的数据(数据库插入了数据)具有闪烁效果,就像加载一样。

我想摆脱这种影响。我想流畅地显示数据,而没有任何闪烁效果。我正在搜索,但找不到任何解决方案。请向我建议解决方案,因为我是新手,所以要求简短高效。

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 :(得分:0)

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);
   }