onitemclicklistener()でチェックボックスをチェックしてください。
-
26-10-2019 - |
質問
ListView行には、このように見えるチェックボックスがあります。
===========================================
[CheckBox] [TextView] [TextView] [TextView]
===========================================
XMLコードはこちらです
<CheckBox
android:id="@+id/course_search_checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:clickable="false"
android:focusable="false" />
また、クリックイベントがListViewに渡されるように、チェックボックスをクリック可能でフォーカブルにしていないようにしています。
ここでやりたいのは、ユーザーがListViewをクリックすると、チェックボックスをチェックして、listViewのクリック位置をArrayListに追加することです。では、ListViewのonitemClickListenerでチェックボックスをチェックしてチェックボックスを作成するにはどうすればよいですか?
助けてください、ありがとう。
解決
あなたはあなたの中にこのコードを追加することができます OnItemClickListener
:
public void onItemClick(AdapterView parent, View view, int position, long id){
CheckBox box = (CheckBox)view.findViewById(R.id.course_search_checkbox);
box.setChecked(true);
}
他のヒント
単一の選択リストの場合は、これらのAPIが必要です ListView
ポジション/IDを取得するには:
getSelectedItemId()
getSelectedItemPosition()
そして、listViewのアダプターを実装した場合。 APIのように bindView
, getView
など(使用したアダプターに応じて)、上記のAPIに基づいてチェック状態を設定しました。何かのようなもの
public View getView(int position, View convertView, ViewGroup parent)
{
ListView listView = (ListView)parent; // This is the parent view group passed as argument.
CheckBox cb = (CheckBox)convertView.findViewById(R.id.check_box);
if(getSelectedItemPosition() == position)
cb.setChecked(true);
else
cb.setChecked(true);
}
複数選択については、ListViewのAPI以下が必要です。
getCheckedItemPositions
チェックボックスをチェックするためのコードは、単一の選択に似ています(ただし、正確ではありません)。
注:言及されたコードは参照用です。最適化されたコードではありません。間違いなく修正が必要です。ノート:
所属していません StackOverflow