我在recyclerview中有一个gridview,我在其中放了ImageButtons。 问题:当我点击这些按钮中的任何一个时,结果活动没有打开,实际上没有任何反应。我试图通过放置一个日志语句来查看是否达到了调用语句但是也没有显示你可以看到我现在已经分配了前四个按钮的活动,而我正在谈论这四个按钮。 我的文件是:
1.MainActivity.xml
package com.defcomdevs.invento16;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.Collections;
import java.util.List;
public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private LayoutInflater inflater;
private Context context;
private static final int TYPE_HEADER = 0;
private static final int TYPE_LIST = 1;
private clickListener click;
List<ListItems> dataList = Collections.emptyList();
public MyAdapter(Context context, List<ListItems> data) {
this.context = context;
inflater = LayoutInflater.from(context);
this.dataList = data;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = inflater.inflate(R.layout.singleitem, parent, false);
ItemHolder holder = new ItemHolder(view);
return holder;
}
@Override
public int getItemViewType(int position) {
return position;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
ItemHolder itemHolder=(ItemHolder) holder;
ListItems current = dataList.get(position);
itemHolder.iconTxt.setText(current.IconName);
itemHolder.icon_id.setImageResource(current.iconId);
itemHolder.icon_id.setBackgroundResource(R.drawable.custom_button);
itemHolder.icon_id.setAlpha(180);
}
public void setClicklistener(clickListener click){
this.click=click;
}
@Override
public int getItemCount() {
return dataList.size();
}
class ItemHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
ImageButton icon_id;
TextView iconTxt;
public ItemHolder(View itemView) {
super(itemView);
itemView.setOnClickListener(this);
icon_id = (ImageButton) itemView.findViewById(R.id.picture);
iconTxt = (TextView) itemView.findViewById(R.id.textView2);
}
@Override
public void onClick(View v) {
if(click!=null){
click.ItemClick(v,getPosition());
}
}
}
public interface clickListener{
void ItemClick(View view,int position);
}
}
2.Adapter文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.defcomdevs.invento16.SquareImageView
android:id="@+id/picture"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal|top"
android:padding="5dp"
android:layout_margin="1dp"
android:scaleType="fitXY" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/picture"
android:paddingBottom="30dp"
android:paddingLeft="20dp"
android:paddingRight="5dp"
android:paddingTop="90dp"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#ffffff"
android:textSize="13sp" />
请帮忙。谢谢
xml文件:
"v1, v2"
答案 0 :(得分:0)
我想通了。问题在于回收者视图正在进行我的点击手势并且正在解释为滚动手势,因此点击完全没有执行。我用add_action(
'woocommerce_email_before_order_table',
'add_order_email_instructions',
0
);
function add_order_email_instructions( $order ) {
if ( 'paypal' == $order->payment_method ) {
echo 'my text:';
}
}
取代onClickListener
并且覆盖方法onItemTouchListener
。我已在此代码片段中上传了更改。
SimpleOnGestureListener
}