На Android ICS множественный выбор нарушен в одном из моих ListViews - PullRequest
1 голос
/ 29 января 2012

В приложении «Мои флеш-карты для Android» есть ошибка, которая возникает только в ICS. Флажки ведут себя как радиокнопки, как будто это был один выбор.

public class CardSetListActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.card_set_list);

        ListAdapter adapter = getSimpleCursorAdapter();
        // ListAdapter adapter = getArrayAdapter();

        ListView list = (ListView) findViewById(R.id.listView);
        list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
        list.setAdapter(adapter);
        list.setItemsCanFocus(false);
    }

    private ListAdapter getSimpleCursorAdapter() {
        CardsDbAdapter dbAdapter = CardsDbAdapter.getInstance(this);
        Cursor cursor = dbAdapter.fetchAllCardSets();
        startManagingCursor(cursor);
        String[] fromColumns = new String[] { CardsDbAdapter.COL_CARD_SET };
        int[] toResources = new int[] { android.R.id.text1 };
        return new SimpleCursorAdapter(this, android.R.layout.simple_list_item_multiple_choice, cursor, fromColumns, toResources);
    }

    private ListAdapter getArrayAdapter() {
        String[] GENRES = new String[] { "Action", "Adventure", "Animation" };
        return new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, GENRES);
    }
}

Есть идеи, где я мог бы найти решение? С SimpleCursorAdapter флажки ведут себя как RadioButton. С ArrayAdapter они ведут себя правильно. Сейчас я перехожу на использование ArrayAdapter, но все же хотел бы знать, что здесь происходит.

...