2017-05-01 1 views
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> 

이 어떤 제안은 감사합니다!

+0

에서 결합하는 것을 잊었다 수도 같아요? –

+0

@RaviRupareliya, 질문을 업데이트, 전체 XML 파일을 넣어. –

+1

@RaviRupareliya 아니, 내 실수! 이제 작동합니다. 감사 –

답변

1

나는 당신이 당신의 XML을 리스너를 결합 적이 활동/조각

binding.setActions(listener) 
관련 문제