سيتم مسح بيانات عرض القائمة القديمة وإعادة تعيين البيانات الجديدة مرة أخرى عند النقر فوق زر getdata مرة أخرى في نظام Android

StackOverflow https://stackoverflow.com//questions/23005253

  •  20-12-2019
  •  | 
  •  

سؤال

أنا أعذب على الروبوت.لقد خلقت الروبوت ListView باستخدام خدمة ويب JSON.أريد أن تكون بيانات ListView القديمة واضحة وأن يتم إعادة تعيين البيانات الجديدة مرة أخرى عندما getdata يتم النقر على الزر مرة أخرى.ساعدوني، شكرا مقدما.

    setContentView(R.layout.activity_main);
    CargoTracklist = new ArrayList<HashMap<String, String>>();

   Btngetdata = (Button)findViewById(R.id.button1);
    Btngetdata.setOnClickListener(new View.OnClickListener() {          
        @Override
        public void onClick(View view) {            
             new JSONParse().execute();             
        }
    });                
}    
private class JSONParse extends AsyncTask<String, String, JSONObject> {
     private ProgressDialog pDialog;
    @Override
    protected void onPreExecute() {
        super.onPreExecute();          
         Status = (TextView)findViewById(R.id.textView2);
         Id= (TextView)findViewById(R.id.textView1);
         DateTime = (TextView)findViewById(R.id.textView3);
         JobNo =(EditText)findViewById(R.id.editText1);
        pDialog = new ProgressDialog(MainActivity.this);
        pDialog.setMessage("Getting Data ...");
        pDialog.setIndeterminate(false);
        pDialog.setCancelable(true);
        pDialog.show();

}       
@Override
    protected JSONObject doInBackground(String... args) {
                    JSONParser jParser = new JSONParser();
                 ArrayList<BasicNameValuePair> params = new ArrayList<BasicNameValuePair>();
        params.clear();         
         params.add(new BasicNameValuePair("JobNo",JobNo.getText().toString()));

              // Getting JSON from URL
              JSONObject json = jParser.getJSONFromUrl(url,params);
              return json;                            
    }                   
     @Override
     protected void onPostExecute(JSONObject json) {
         pDialog.dismiss();
         try {
             if (JobNo.getText().toString().equals(""))
                {
                    Toast.makeText(MainActivity.this, "You did not enter a JobNo", Toast.LENGTH_SHORT).show();

                 }
                 else                    {                               
             // Getting JSON Array from URL
                Cargo = json.getJSONArray(TAG_CargoTrack);
                for(int i = 0; i < Cargo.length(); i++){
                JSONObject c = Cargo.getJSONObject(i);

                // Storing  JSON item in a Variable
                String Status = c.getString(TAG_Status);
                String Id = c.getString(TAG_Id);
                String DateTime = c.getString(TAG_DateTime);                                                                                        HashMap<String, String> map = new HashMap<String, String>();

                map.put(TAG_Status, Status);
                map.put(TAG_Id, Id);
                map.put(TAG_DateTime, DateTime);

                CargoTracklist.add(map);
                list=(ListView)findViewById(R.id.listView1);
                                                                                    ListAdapter adapter = new SimpleAdapter(MainActivity.this, CargoTracklist,
                        R.layout.listview,
                        new String[] { TAG_Status,TAG_Id, TAG_DateTime }, new int[] {
                                R.id.textView2,R.id.textView1, R.id.textView3});

                list.setAdapter(adapter);
                list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

                    @Override
                    public void onItemClick(AdapterView<?> parent, View view,
                                            int position, long id) {
                        Toast.makeText(MainActivity.this, "You Clicked at "+CargoTracklist.get(+position).get("Id"), Toast.LENGTH_SHORT).show();

                    }
                });
هل كانت مفيدة؟

المحلول

عندما تريد تحديث قائمتك، امسح البيانات القديمة

if(CargoTracklist != null){
CargoTracklist.clear();
// Add new Data to CargoTracklist
CargoTracklist.add("new data");
if(adapter != null){
adapter.notifyDataChaned();
}
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top