Android Archt를 팔로우하고 있습니다. component 프로젝트를 빌드하십시오. 내가 휴지통보기 항목에 레이아웃을 삭제 슬쩍을 구현하고어댑터에서 바인딩 이벤트가 실행되지 않음
public class CataloguesAdapter extends DataBoundListAdapter<CatalogueEntity, CatalogueItemBinding> {
private final android.databinding.DataBindingComponent dataBindingComponent;
private final ContributorClickCallback callback;
private CatalogueItemBinding mBinding;
public CataloguesAdapter(DataBindingComponent dataBindingComponent,
ContributorClickCallback callback) {
this.dataBindingComponent = dataBindingComponent;
this.callback = callback;
}
@Override
protected CatalogueItemBinding createBinding(ViewGroup parent) {
mBinding = DataBindingUtil
.inflate(LayoutInflater.from(parent.getContext()),
R.layout.catalogue_item, parent, false,
dataBindingComponent);
//while this click event is working fine
mBinding.getRoot().setOnClickListener(v -> {
CatalogueEntity catalogueEntity = mBinding.getCatalogue();
if (catalogueEntity != null && callback != null) {
callback.onClick(catalogueEntity);
}
});
//todo:not working, this event is not firing
mBinding.deleteIcon.setOnClickListener(v-> callback.onItemDelete());
return mBinding;
}
}
: 가이드 라인에 따라 I는 다음과 같이 DataBoundListAdapter을 확장 CataloguesAdapter라는 이름의 사용자 정의 어댑터를 만들었습니다. 왼쪽으로 스 와이프 같은
<?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"
xmlns:tools="http://schemas.android.com/tools">
<data>
<variable
name="catalogue"
type="com.mindtree.igxbridge.traderapp.datasource.local.entity.CatalogueEntity" />
</data>
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardUseCompatPadding="true">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RelativeLayout
android:id="@+id/view_background"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorRed">
<ImageView
android:id="@+id/delete_icon"
android:layout_width="@dimen/dimen_30_dp"
android:layout_height="@dimen/dimen_30_dp"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginEnd="@dimen/dimen_10_dp"
app:srcCompat="@drawable/ic_delete"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginEnd="@dimen/dimen_10_dp"
android:layout_toStartOf="@id/delete_icon"
android:text="@string/text_delete"
android:textColor="@color/Material.87.white"
android:textSize="14sp" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/view_foreground"
android:layout_width="match_parent"
android:background="#FFFFFF"
android:layout_height="wrap_content">
<android.support.v7.widget.AppCompatImageView
android:id="@+id/arrow_icon"
android:layout_width="@dimen/dimen_30_dp"
android:layout_height="@dimen/dimen_30_dp"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginEnd="@dimen/dimen_10_dp"
app:srcCompat="@drawable/ic_arrow_right" />
</RelativeLayout>
</FrameLayout>
</android.support.v7.widget.CardView>
</layout>
또 다른 작업이/바로 잘 작동하지만, 삭제 버튼 이벤트를 클릭한다 불리는 점점되지 않은 : 다음 목록 항목의 XML 레이아웃입니다.
findViewbyId를 확인하고 클릭 이벤트를 등록하려고했으나 그와 관련하여 아무런 문제가 없습니다. CatalogueItemBinding이 올바르게 등록되어 있지만 다른 오류 소스를 찾을 수 없습니다.
감사합니다.
삭제하기 위해 스 와이프를 구현했습니다. view_background를 스 와이프하는 동안 삭제 버튼이 나타납니다. 그래서 나는 삭제 버튼을 클릭 할 수 있어야합니다. – prdp89