Wie kann ich das Kontrollkästchen im OnitemclickListener () überprüfen lassen?
-
26-10-2019 - |
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.
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: