0
GridView ItemClickListener
에 대한 다음 구현을 시도했지만 프로젝트가 올바르게 컴파일되고 있지만 GridView
항목을 클릭하면 Toast
은 내 메시지를 표시하지 않습니다. 무엇이 잘못 되었습니까?Android GridView 데이터 바인딩 - ItemClickListener가 실행되지 않습니다.
자바 클릭 핸들러
public class MultiChoiceActions {
public void onItemClick(View view, int position, List<FieldOption> objectList) {
boolean currentValue = objectList.get(position).isChecked();
objectList.get(position).setChecked(!currentValue);
Toast.makeText(view.getContext(), "!currentValue " + (!currentValue) , Toast.LENGTH_SHORT).show();
}
}
XML 레이아웃이
편집<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="vm"
type="br.com.viewluck.viewmodel.MultiChoiceViewModel"/>
<variable
name="adapter"
type="br.com.viewluck.viewmodel.MultiChoiceAdapter"/>
<variable
name="actions"
type="br.com.viewluck.viewmodel.MultiChoiceActions"/>
</data>
<android.support.v7.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="2dp"
android:orientation="vertical">
<android.support.v7.widget.AppCompatTextView
android:id="@+id/txt_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@{vm.fieldLabel}"
android:textSize="14sp"
android:textStyle="bold" />
<GridView
android:id="@+id/gd_multiple_choice"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:choiceMode="multipleChoice"
app:options="@{vm.objectList}"
app:OnItemClickListener="@{(parent, view, position,id)->actions.onItemClick(view, position, vm.answer)}"
android:numColumns="auto_fit" />
</android.support.v7.widget.LinearLayoutCompat>
</layout>
이 어떤 제안은 감사합니다!
에서 결합하는 것을 잊었다 수도 같아요? –
@RaviRupareliya, 질문을 업데이트, 전체 XML 파일을 넣어. –
@RaviRupareliya 아니, 내 실수! 이제 작동합니다. 감사 –