Edit: Okay, I found a solution. Don\'t know that it\'s the proper solution, but it does work correctly. Added to the code below.
I\'m trying to allow a user to select a
didn't mean to do this as an answer but i had to expand on what you did to do multi select. Why did you do a field variable for your selections? i just did local SparseBooleanArray...
public class NaughtyAndNice extends ListActivity {
TextView selection;
String[] items={"lorem","ipsum", "dolor", "sit", "amet",
"consectetuer", "adipisc", "jklfe", "morbi", "vel",
"ligula", "vitae", "carcu", "aliequet"};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setListAdapter(new ArrayAdapter(this,android.R.layout.simple_list_item_multiple_choice,items));
selection = (TextView)findViewById(R.id.selection);
this.getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
}
public void onListItemClick(ListView parent, View view, int position, long id){
SparseBooleanArray choices = parent.getCheckedItemPositions();
StringBuilder choicesString = new StringBuilder();
for (int i = 0; i < choices.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(choices.valueAt(i) == true)
choicesString.append(items[choices.keyAt(i)]).append(" ");
}
selection.setText(choicesString);
}
}