0

私はカレンダーアプリに取り組んでいます。利用可能なすべてのカレンダーを表示するリストビュー。チェックボックスを追加する方法と、以前に選択したカレンダーがチェックされているはずです。

このようなリストビューが欲しいです。

テキストビュー cb

4

2 に答える 2

1

リストビュー アダプターを「simple_list_item_multiple_choice」に設定します。

ArrayAdapter<String> adapter;

List<String> values; // put values in this

//Put in listview
adapter = new ArrayAdapter<UserProfile>(
this,
android.R.layout.simple_list_item_multiple_choice, 
values);
setListAdapter(adapter);   //Set the adpter to list View

2 番目の方法は、基本アダプター クラスを拡張してカスタム アダプターを作成することです。

リンクの例を見てください:

http://www.mysamplecode.com/2012/07/android-listview-checkbox-example.html

于 2013-03-02T07:55:46.663 に答える
0

ListView行にcheckedTextViewを使用し(カスタムアダプターを使用)、リストビューに android:choiceMode="multipleChoice" を指定できます

これが私のコードのサンプルです:

<CheckedTextView
    android:id="@+id/member_name"
    android:layout_width="match_parent"
    android:layout_height="48dp"
    android:drawableRight="?android:attr/listChoiceIndicatorMultiple"
    android:focusable="false"
    android:focusableInTouchMode="false"
    android:gravity="center_vertical"
    android:paddingLeft="20dp"
    android:textColor="@color/dark_grey_txt" />

ここでは、CheckedTextView をタップすると、チェックされたドローアブルが追加されます

選択したアイテムを List<> に保存すると、クリックで追加および削除できます

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    CheckedTextView ctv = (CheckedTextView) view.findViewById(R.id.member_name);
    if (ctv != null) {
        if (ctv.isChecked()) {
            ctv.setChecked(false);
            listAdapter.removeSelectedMembers(position);
        } else {
            ctv.setChecked(true);
            listAdapter.setSelectedMembers(position);
        }
    }
}

//adapter アイテムの追加と削除のメソッド

public void setSelectedMembers(int position) {
    if (!selectedMembersList.contains(String.valueOf(position))) {
        selectedMembersList.add(String.valueOf(position));
    }
}

public void removeSelectedMembers(int position) {
    selectedMembersList.remove(String.valueOf(position));
}
于 2013-03-02T08:01:39.293 に答える