这是我的item.xml:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView 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"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/card_side_margin"
android:layout_marginRight="@dimen/card_side_margin"
app:cardCornerRadius="16dp"
app:cardElevation="8dp"
app:cardPreventCornerOverlap="false"
app:cardUseCompatPadding="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="100dp"
android:scaleType="centerCrop"
app:riv_corner_radius_top_left="16dp"
app:riv_corner_radius_top_right="16dp"
tools:src="@drawable/anne_kalbi" />
<View
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="@drawable/top_rounded_rect" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="16dp"
android:orientation="vertical">
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:textColor="@color/white"
android:textSize="@dimen/item_poem_title_size"
tools:text="Anne Kalbi" />
<TextView
android:id="@+id/poet"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:textColor="@color/white"
android:textSize="@dimen/item_poem_poet_size"
tools:text="Şair: Mehmet Çağan" />
</LinearLayout>
</FrameLayout>
<Button
android:id="@+id/listenBtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bottom_rounded_rect"
android:gravity="center"
android:text="@string/listen"
android:textColor="#fff" />
</LinearLayout>
</android.support.v7.widget.CardView>
这里是我将onClickListener添加到RecyclerView适配器的onBindViewHolder中的itemView的地方:
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (itemListener != null)
itemListener.onItemClicked(item, position);
}
});
}
然而,图像部分对点击作出反应但按钮没有反应。它们都在itemView内部,那么停止按钮的反应是什么?
答案 0 :(得分:0)
我已经这样做了
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
final CustomerOrderSetterClass current = orderSetterClassHashMap.get(position);
holder.setClickListener(new ItemClickListener() {
@Override
public void onClick(View view, int position, boolean isLongClick) {
/* Intent i = new Intent(context, CustomerDetailsActivity.class);
b.putString("Sno", current.getSno());
i.putExtras(b);
context.startActivity(i);*/
showDeliveryInfoAlert();
}
});
holder.delivery_date.setText(current.getDate());
holder.order_can.setText(current.getNoofcane());
holder.order_status.setText(current.getStatus());
if (current.getStatus().equalsIgnoreCase("New Order"))
holder.order_status.setTextColor(Color.RED);
else
holder.order_status.setTextColor(Color.GREEN);
}
private void showDeliveryInfoAlert() {
final Dialog dialog = new Dialog(context);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
LayoutInflater lf = (LayoutInflater) (context)
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View dialogview = lf.inflate(R.layout.delivery_driver_details, null);
dialog.setContentView(dialogview);
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(dialog.getWindow().getAttributes());
lp.width = ViewGroup.LayoutParams.MATCH_PARENT;
lp.height = ViewGroup.LayoutParams.WRAP_CONTENT;
lp.gravity = Gravity.CENTER;
dialog.getWindow().setAttributes(lp);
dialog.show();
TextView cancel = (TextView) dialogview
.findViewById(R.id.dialogCancel);
cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
}
class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
public TextView delivery_date, order_can,order_status;
public Button edit;
private ItemClickListener clickListener;
public ViewHolder(View itemView) {
super(itemView);
itemView.setTag(itemView);
itemView.setOnClickListener(this);
delivery_date = (TextView) itemView.findViewById(R.id.date);
order_can = (TextView) itemView.findViewById(R.id.noofcane);
order_status= (TextView) itemView.findViewById(R.id.status);
}
public void setClickListener(ItemClickListener itemClickListener) {
this.clickListener = itemClickListener;
}
@Override
public void onClick(View v) {
clickListener.onClick(v, getPosition(), false);
}
}
将此界面添加到您的包中
public interface ItemClickListener {
void onClick(View view, int position, boolean isLongClick);
}