Edit: Okay, ich habe eine Lösung gefunden. Ich weiß nicht, dass es die richtige Lösung ist, aber es funktioniert richtig. Dem folgenden Code hinzugefügt.Rückgabewerte aus Mehrfachauswahl ListView
Ich versuche, einem Benutzer zu ermöglichen, eine Anzahl von Verzeichnissen aus einer Prüfliste auszuwählen und sie nach dem Klicken auf eine Schaltfläche "Senden" zurückzugeben. Hier ist ein Ausschnitt meines Codes. Es füllt das ListView mit allen Verzeichnissen auf/sdcard /, und für die anfängliche Auswahl (von wie vielen ich auch wähle), wenn ich absende, zeigt das Protokoll die richtigen Auswahlen an, die zurückgegeben werden. Wenn ich jedoch ein Element deaktiviere und erneut auf "Senden" klicke, wird es immer noch so angezeigt, als wären alle ausgewählt. Muss ich einen Handler schreiben, um ein Element zu deaktivieren? Ich dachte, das wurde durch die selectMode Auswahl erledigt? Vielen Dank!
private SparseBooleanArray a;
directoryList.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, directoryArray));
submitButton = (Button)findViewById(R.id.submit_button);
submitButton.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
a = new SparseBooleanArray();
a.clear();
a = directoryList.getCheckedItemPositions();
for (int i = 0; i < a.size(); i++)
{
//added if statement to check for true. The SparseBooleanArray
//seems to maintain the keys for the checked items, but it sets
//the value to false. Adding a boolean check returns the correct result.
if(a.valueAt(i) == true)
Log.v("Returned ", directoryArray[a.keyAt(i)]);
}
}
});
es scheint schrecklich ineffizient, die for-Schleife zu tun und dann innerhalb der for-Schleife tun eine keyAt ... wie schlecht läuft keyAt? oh well – JDPeckham
Ich verstehe nicht den Unterschied in diesem Code ... es scheint mit meiner funktional identisch zu sein. – kcoppock
Oh vergiss ich deine Frage. Es gab keinen wirklichen Grund, eine Klassenvariable für die SBA zu machen, ich war nur neu in Java und Android und habe es dumm gemacht. :) – kcoppock