按钮单击不会在Gridview android中启动活动

时间:2015-10-28 16:15:42

标签: android android-activity gridview android-imagebutton

我在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"

1 个答案:

答案 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

}