質問

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

チェックボックスをチェックするためのコードは、単一の選択に似ています(ただし、正確ではありません)。

注:言及されたコードは参照用です。最適化されたコードではありません。間違いなく修正が必要です。ノート:

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top