0

こんにちは、複数選択リストを使用しています。ボタンクリックイベントですべてのアイテムを選択する方法、またはボタンクリックイベントですべてのアイテムを選択解除する方法を教えてください。

私のコードはここにあります

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.contact_list);

    findViewsById();
    PhoneContacts pc = new PhoneContacts(ContactList.this);
    pc.readContacts();

    for (int i = 0; i < pc.allPhoneNumbers.size(); i++) {

        _allNumberAndNameMergeList.add(pc.allContactName.get(i) + "\n"
                + pc.allPhoneNumbers.get(i));
    }
    adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_multiple_choice,
            _allNumberAndNameMergeList);
    listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
    listView.setAdapter(adapter);

    button.setOnClickListener(this);
}

private void findViewsById() {
    listView = (ListView) findViewById(R.id.list);
    button = (Button) findViewById(R.id.testbutton);
}

public void onClick(View v) {
    SparseBooleanArray checked = listView.getCheckedItemPositions();
    ArrayList<String> selectedItems = new ArrayList<String>();
    for (int i = 0; i < checked.size(); i++) {
        // Item position in adapter
        int position = checked.keyAt(i);
        // Add sport if it is checked i.e.) == TRUE!
        if (checked.valueAt(i))
            selectedItems.add(adapter.getItem(position));
    }

    String[] outputStrArr = new String[selectedItems.size()];

    for (int i = 0; i < selectedItems.size(); i++) {
        outputStrArr[i] = selectedItems.get(i);
    }


}

}

こんにちは、複数選択リストを使用しています。ボタンクリックイベントですべてのアイテムを選択する方法、またはボタンクリックイベントですべてのアイテムを選択解除する方法を教えてください。

4

1 に答える 1

0

たとえばCheckBoxを含むArrayAdapterおよびListViewアイテムを拡張するカスタムアダプタを作成します。アダプタークラス内よりもgetView()メソッドは、選択されたアイテムの位置を処理して、現在の位置にあるオブジェクトを取得し、必要なことを何でも実行できます。このチュートリアルを見ることができます-12。ListViewで複数のアイテムを選択する

http://www.vogella.com/articles/AndroidListView/article.html

于 2013-02-15T08:38:10.277 に答える