2017-04-15 2 views
0

이미지가로드 된 imageView가 있고이 이미지로 전체 화면 활동을 열기를 원합니다.Android 데이터 바인딩 람다 식으로 onClick에 인수 전달

<layout xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:app="http://schemas.android.com/apk/res-auto"> 
<data> 
    <variable 
      name="obj" 
      type="...ViewObjectImage"> 
    </variable> 
    <variable 
      name="handler" 
      type="...Handlers"> 
    </variable> 
</data> 
<RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     > 

    <android.support.v7.widget.CardView 
      ... 
     <ImageView 
       ... 
       app:progressbar="@{progressBar}" 
       app:imageUrl="@{obj.url}" 
       android:onClick="@{(v) -> handler.openFullScreen(v, obj.url)}" 
       android:clickable="true" 

내 핸들러 클래스

public void openFullScreen(View view, String url){ 
    Context context = view.getContext(); 
    Intent intent = new Intent(context, FullScreenSingleImageActivity.class); 
    intent.putExtra("image_url", url); 
    context.startActivity(intent); 
} 

을하지만 이미지 뷰를 클릭 할 때 아무 반응이 없습니다. 올바른 방법으로 람다 식으로 두 번째 인수를 전달할 수 있습니까? recyclerview가 다른 레이아웃 (여러보기 유형)를 포함하고 있기 때문에

+0

여러분이 이미 그렇게하고있는 것처럼 보입니다. 당신이 달성하고자하는 것에 대해보다 구체적으로 설명하십시오. 그리고 왜 작동하지 않습니다. 메소드 참조를 사용한다는 것은 불가능합니다. 하지만 당신은 코드가 저에게 잘 어울립니다. – tynn

+0

전체 화면 이미지로 열기 작업을 시도하지만 이미지 뷰를 클릭하면 아무 일도 일어나지 않습니다. – ZolkiBy

+0

그러면 'openFullScreen()'본문과 관련 될 수 있습니다. 질문에 추가해야합니다. – tynn

답변

0

광고 레이아웃 광고 세트 레이아웃 파라미터 이미지보기, 화면 내가이 문제가

+0

상대적 레이아웃의 이미지 뷰, 간단한 질문에이 코드를 적게하지 않습니다. – ZolkiBy

-1

을 채우기 위해. 그리고 모든 레이아웃은 데이터 바인딩을 사용했습니다. 나는 액티비티의 레이아웃을 위해서만 핸들러를 설정했다. 질문은 내가 어댑터에서 처리기를 recyclerview의 모든 레이아웃에 설정했을 때 해결되었습니다.

@Override 
public void onBindViewHolder(CommonViewHolder holder, int position) { 
    Object object = getObjForPosition(position); 
    holder.bind(object); 
    holder.binding.setVariable(BR.handler, mHandlers); 
}