Klar, Android-ListView

Ich habe ein ListView. Ich möchte dynamisch zu ändern, den Inhalt der listview.Ich verwendet " - adapter.notifyDataSetChanged ();", um den Inhalt zu ändern. Ich habe auch versucht, die Einstellung dem adapter der listview auf null, aber trotzdem bekomme ich die gleichen Ergebnisse. Es ist erfrischend, aber nicht deaktivieren Sie das listview, statt es man es mit den vorherigen Ergebnissen. Was ich will, ist der Vorherige Inhalt gelöscht werden soll und die neuen Ergebnisse angezeigt werden sollen.

Ich bin nicht in der Lage zu verstehen, wo liegt mein Fehler und was ich bin fehlt.

Ich wäre Dankbar, wenn jemand könnte bitte helfen Sie mir mit diesem.

Unten ist der code, der generiert die listview

 public void ListDrawer() {
     try {
      JSONObject jsonResponse = new JSONObject(jsonResult);
      JSONArray jsonMainNode = jsonResponse.optJSONArray("myRegisteredList");

      for (int i = 0; i < jsonMainNode.length(); i++) {
       JSONObject jsonChildNode = jsonMainNode.getJSONObject(i);
       String registered_name = jsonChildNode.optString("seminar");
       String org = jsonChildNode.optString("organizer");
       String sem_id = jsonChildNode.optString("id");
       String r_sem = jsonChildNode.optString("seminar_id");

       registeredlist = new HashMap<String, String>();
       registeredlist.put("registeredList", registered_name);
       registeredlist.put("seminar_id", r_sem);
       registeredlist.put("sem_id", sem_id);
       registeredlist.put("organizer", org);
       registeredList.add(registeredlist);

      }
     } catch (JSONException e) {
         //Toast.makeText(this, e.getMessage().toString() + " 1", Toast.LENGTH_LONG).show();
         Toast.makeText(ViewReservedSeminarList.this, "Sorry...You don't have any reserved seminar/s.", Toast.LENGTH_LONG).show();
    }
     try{

    simpleAdapter = new SimpleAdapter(this, registeredList,
       android.R.layout.simple_list_item_2,
       new String[] { "registeredList" ,"organizer", "seminar_id" }, new int[] { android.R.id.text1 , android.R.id.text2 , android.R.id.title });


     listView.setAdapter(simpleAdapter);
     listView.setOnItemClickListener(new OnItemClickListener(){

        @Override
        public void onItemClick(AdapterView<?> a, View v, int i, long l) {
            //TODO Auto-generated method stub
            @SuppressWarnings("unchecked")
            HashMap<String, String> selected_row = (HashMap<String, String>) simpleAdapter.getItem(i);
            s_id = selected_row.get("seminar_id");
            Intent intent = new Intent(ViewReservedSeminarList.this, ReservedSeminar.class);
            startActivity(intent);
            //Toast.makeText(ViewReservedSeminarList.this, "Selected Item : "+s_id, Toast.LENGTH_LONG).show();
        }

     });
     }catch(Exception e){
         //Toast.makeText(this, e.getMessage().toString() + " 2", Toast.LENGTH_LONG).show();
        Toast.makeText(ViewReservedSeminarList.this, "There is no data being fetched", Toast.LENGTH_LONG).show();
 }
}

Unten ist der Ausschnitt legte ich auf die onCreate-Methode zum aktualisieren der listview alle 10 Sekunden. Ich rufe die ListDrawer Methode unter der accessWebService Methode.

 final Handler handler = new Handler();
                 handler.postDelayed( new Runnable(){
                        @Override
                        public void run(){
                        accessWebService();
                        handler.postDelayed(this, 10 * 1000);
                        Log.i("TAG", "notify");

                 }
                        }, 10 * 1000

                        ); 
  • schauen Sie bitte meine Antwort weiter unten , sollten Sie klar Ihre array-Liste
InformationsquelleAutor user2988539 | 2014-04-09
Schreibe einen Kommentar