Frage

Ich habe ein Kontrollkästchen in meiner ListView -Zeile, das so aussieht.

===========================================
[CheckBox] [TextView] [TextView] [TextView]
===========================================

Der XML -Code ist hier

<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" />

Und ich habe das Kontrollkästchen bereits nicht anklickbar und fokussierbar gemacht, damit das Klickereignis an die ListView übergeben wird.

Wenn der Benutzer auf die Liste der ListView klickt, das Kontrollkästchen überprüft und die angeklickte Position von ListView zu einer ArrayList hinzufügen. Wie kann ich das Kontrollkästchen in einem OnitemclickListener von ListView überprüfen lassen?

Hilfe bitte, danke.

War es hilfreich?

Lösung

Sie können diesen Code in Ihrem hinzufügen 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);
}

Andere Tipps

Wenn es sich um eine einzige Auswahlliste handelt, benötigen Sie diese APIs von ListView Position/ID erhalten:

getSelectedItemId()
getSelectedItemPosition()

Und jetzt, wenn Sie Ihren Adapter für ListView implementiert haben. Da drin für APIs wie bindView, getView usw. (je nachdem, welcher Adapter Sie verwendet haben) haben den geprüften Zustand basierend auf den oben genannten APIs festgelegt. Etwas wie

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);
 }

Für die Mehrfachauswahl benötigen Sie unten APIs von ListView:

getCheckedItemPositions

Der Code zum Überprüfen des Kontrollkästchens ähnelt der Einzelauswahl (jedoch nicht genau).

Hinweis: Der erwähnte Code ist nur als Referenz. Es ist kein optimierter Code. Benötigen Sie definitiv Änderungen. HINWEIS:

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top