Как сделать флажок установленным в OnItemClickListener ()? - PullRequest
3 голосов
/ 01 декабря 2011

У меня есть флажок в моей строке 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" />

И я уже сделал флажок не активируемым и не активируемымтак что событие click будет передано в ListView.

Здесь я хочу сделать следующее: когда пользователь щелкает по представлению списка, установите флажок CheckBox и добавьте позицию просмотра по щелчку в массив списков.Так как же сделать CheckBox проверенным в OnItemClickListener ListView?

Помогите, пожалуйста, спасибо.

Ответы [ 2 ]

5 голосов
/ 01 декабря 2011

Вы можете добавить этот код в 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);
}
0 голосов
/ 01 декабря 2011

Ну, если это один список выбора, то вам нужны эти apis от 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);
 }

Для множественного выбора вам нужно ниже apis от ListView:

getCheckedItemPositions

Код для проверки флажка будет похож на одиночный выбор (хотя и не точный).

ПРИМЕЧАНИЕ. Указанный код приведен только для справки. Это не оптимизированный код. Определенно нужны модификации. ПРИМЕЧАНИЕ:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...