2017-10-24 2 views
1

Ich versuche, die Listenansicht auf eine SET-Schaltfläche zu füllen.Wenn ich die Werte spinner und entsprechend Liste wird füllen. Problem, mit dem ich konfrontiert bin, ist, dass ich oft auf die Schaltfläche "SET" klicke, um Elemente zur Listenansicht hinzuzufügen. enter image description hereWie lösche ich Elemente von SimpleAdapter?

setButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) 
     { 
     for (int i = 0; i < DeviceID.size(); i++) 
     { 

       //initialize row data 
       for (int j = 0; j < 5; j++) { 
        if (j == 0) 
         str = DATE.get(i); 
        else if (j == 1) 
         str = TIME.get(i); 
        else if (j == 2) 
         str = DeviceID.get(i); 
        else if (j == 3) 
         str = SMSTEXT.get(i); 
        map.put(columnTags[j], str); 
       } 
       mylistData.add(map); 
      } 

    final String[] columnTags = new String[]{"one", "two", "three", "four", "five", "six", "lat", "log"}; 
    final int[] columnIds = new int[]{R.id.textView5, R.id.textView8, R.id.textView9,R.id.checkbox, R.id.textView10}; 
    arrayAdapter = new SimpleAdapter(this, mylistData, R.layout.location_locator_textview, columnTags, columnIds); 

    listview.setAdapter(arrayAdapter); 
    arrayAdapter.notifyDataSetChanged(); 
    } 
    }); 
+1

Geben Sie den Code ein, den Sie ausprobiert haben. –

+1

Sie haben nur den Initialisierungscode eingegeben. Veröffentlichen Sie den Code, in dem Sie Ihren Adapter aktualisieren. –

Antwort

1

Es ist wie Ihre Liste sieht mylistData ist eine globale Variable. Also, die alten Gegenstände sind immer noch in der Liste.

Entweder lokal innerhalb der onClick Methode oder löschen Sie es in der ersten Zeile der onClick Methode. (Auch derselbe Fall für map)

public void onClick(View view){ 
    mylistData.clear(); 
    map.clear(); 
    //your code 
} 
0

Versuchen Sie, die list ein Element in Ihrem adapter zu modifizieren und dann notifyDataSetChanged() nennen.

Es wäre einfacher, wenn Sie den Code

+0

Ich versuchte dies auch, aber nichts passiert –

1

Sie buchen listview.setAdapter(null); nennen können, bevor Sie Ihren Artikel in Listenansicht gesetzt

+0

Ich versuchte, aber nicht arbeiten.Weil mein Adapter immer Wert @hasbi –

+1

haben können Sie Set-Funktion und Adapter/listview Teile Ihres Codes – hasbi

+0

Ich fügte hinzu, Sie können dies @ hasbi sehen –

Verwandte Themen