私はしばらくこれにこだわっています。ユーザーがリストから項目を選択できるようにして (項目をタップするだけで、チェックボックスはありません)、それを点灯させるか、選択されていることが明らかなようにします。ユーザーは好きなだけ選択でき、最後に「完了」をクリックして選択を確定します。
どうすればこれを行うことができますか?カスタム アダプターと行レイアウトがあります。
私はしばらくこれにこだわっています。ユーザーがリストから項目を選択できるようにして (項目をタップするだけで、チェックボックスはありません)、それを点灯させるか、選択されていることが明らかなようにします。ユーザーは好きなだけ選択でき、最後に「完了」をクリックして選択を確定します。
どうすればこれを行うことができますか?カスタム アダプターと行レイアウトがあります。
ハッシュマップなどを作成して、選択されたリストのアイテムを数え続けるのに役立ちます。
HashMap<Integer, Boolean> selectedItems = new HashMap<Integer, Boolean>();
そして、アダプタの getView メソッドで
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater inflater = (LayoutInflater) ctx
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.your_custom_item, null);
}
if(selectedItems.get(position))
v.setBackgroundColor("YOURSELECTEDCOLOR");
else v.setBackgroundColor("YOURUNSELECTEDCOLOR");
return v;
}
もちろん、ハッシュマップ項目を onItemClickListener に設定する必要があります。
ここでは、 ListViewアダプター リストのサイズと同じサイズのブール型の配列が必要です 。次に、 ListViewのonItemClickリスナーを追加し、アイテムの選択時にリスト内のブール変数を切り替えるだけです。ユーザーが選択を完了すると、選択したアイテムのリストを簡単に反復するだけです:)
また、ユーザーがリスト項目をクリックしたときに、リスト項目の背景を (選択された状態または選択されていない状態に) 切り替えます
ListView の setChoiceMode メソッドを MULTI_SELECT に設定します。