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);
}
}