android-单击项目RecyclerView时不显示吐司

好的,我知道,可能有人已经问过这个问题了.我已经在this link上找到了针对我的问题的可能解决方案.但是,由于未知原因,该解决方案对我不起作用.
我想在RecyclerView中单击某项(CardView)时显示Toast.此Toast必须向我显示单击的项目的位置.
当我单击CardView时,我看到了波纹-这意味着单击了该卡-但不幸的是,我没有看到任何吐司.有人可以解释我为什么吗?提前致谢.

这是我的适配器:

public class MainRecyclerViewAdapter extends RecyclerView.Adapter<MainRecyclerViewAdapter.MyMainViewHolder> {


private List<Information> mainInfo;
MyDatabase myDatabase;


public MainRecyclerViewAdapter(List<Information> mainInfo) {
    this.mainInfo = mainInfo;
}

public static class MyMainViewHolder extends RecyclerView.ViewHolder {
    TextView titleTextView, notesTextView, dateTextView, timeTextView;
    ImageView imageView;
    LinearLayout linearLayout;

    public MyMainViewHolder(View itemView) {
        super(itemView);
        linearLayout = (LinearLayout) itemView.findViewById(R.id.mainLayout);
        imageView = (ImageView) itemView.findViewById(R.id.imgIcon);
        titleTextView = (TextView) itemView.findViewById(R.id.title_TextView);
        notesTextView = (TextView) itemView.findViewById(R.id.notes_TextView);
        dateTextView = (TextView) itemView.findViewById(R.id.date_TextView);
        timeTextView = (TextView) itemView.findViewById(R.id.time_TextView);

        itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(v.getContext(), "Position: " + Integer.toString(getAdapterPosition()), Toast.LENGTH_LONG).show();
            }
        });

    }

}



@Override
public MyMainViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.main_single_raw, parent, false);
    MyMainViewHolder holder = new MyMainViewHolder(v);
    return holder;
}

public void delete(int position){
    mainInfo.remove(position);
    notifyItemRemoved(position);
}

@Override
public void onBindViewHolder(final MyMainViewHolder holder, final int position) {
    holder.imageView.setImageResource(mainInfo.get(position).getICON_ID());
    holder.titleTextView.setText(mainInfo.get(position).getTITLE());
    holder.notesTextView.setText(mainInfo.get(position).getNOTES());
    holder.dateTextView.setText(mainInfo.get(position).getDATE());
    holder.timeTextView.setText(mainInfo.get(position).getTIME());


}




@Override
public int getItemCount() {
    return mainInfo.size();
}}

这是我的cardView的布局文件:

<android.support.v7.widget.CardView
xmlns:card_view="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/card_view1"
android:clickable="true"
android:layout_width="match_parent"
android:layout_height="match_parent"
card_view:cardCornerRadius="3dp"
android:layout_margin="5dp">

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mainLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="0.5dp"
    android:clickable="true"
    android:background="?android:selectableItemBackground"
    android:orientation="horizontal"
    android:weightSum="10">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">


        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="fill_parent"
            android:layout_marginLeft="16dp"
            android:layout_weight="8.5">

            <TextView
                android:id="@+id/title_TextView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="5dp"
                android:layout_marginLeft="0dp"
                android:layout_marginRight="8dp"
                android:layout_marginTop="5dp"
                android:text="Title"
                android:fontFamily="sans-serif-light"
                android:textColor="#F57C00"
                android:textSize="25sp"
                />



        </RelativeLayout>

        <View
            android:layout_width="fill_parent"
            android:id="@+id/divider1"
            android:layout_height="0.1dp"
            android:layout_below="@+id/title_TextView"
            android:background="@android:color/darker_gray"/>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="fill_parent"
                android:layout_marginLeft="16dp"
                android:layout_weight="8.5">

                <ImageView
                    android:id="@+id/imgIcon"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_centerHorizontal="true"
                    android:layout_centerVertical="true"
                    android:src="@mipmap/ic_alarm_check_grey600_48dp" />


            </RelativeLayout>


            <LinearLayout
                android:id="@+id/linear"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1.5"
                android:orientation="vertical">


                <TextView
                    android:id="@+id/notes_TextView"
                    android:paddingTop="5dp"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="5dp"
                    android:layout_marginLeft="16dp"
                    android:layout_marginRight="8dp"
                    android:text="notes"
                    android:textColor="#ff565656"
                    android:textSize="12sp" />

                <TextView
                    android:id="@+id/date_TextView"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="5dp"
                    android:layout_marginLeft="16dp"
                    android:layout_marginRight="8dp"
                    android:text="date"
                    android:textColor="#ff565656"
                    android:textSize="12sp" />

                <TextView
                    android:id="@+id/time_TextView"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="5dp"
                    android:layout_marginLeft="16dp"
                    android:layout_marginRight="8dp"
                    android:text="time"
                    android:textColor="#ff565656"
                    android:textSize="12sp" />


            </LinearLayout>


        </LinearLayout>


    </LinearLayout>


</LinearLayout>

解决方法:

问题解决了!这是工作代码:

public static class MyMainViewHolder extends RecyclerView.ViewHolder {
    TextView titleTextView, notesTextView, dateTextView, timeTextView;
    ImageView imageView;
    LinearLayout linearLayout;

    public MyMainViewHolder(final View itemView) {
        super(itemView);
        linearLayout = (LinearLayout) itemView.findViewById(R.id.mainLayout);
        imageView = (ImageView) itemView.findViewById(R.id.imgIcon);
        titleTextView = (TextView) itemView.findViewById(R.id.title_TextView);
        notesTextView = (TextView) itemView.findViewById(R.id.notes_TextView);
        dateTextView = (TextView) itemView.findViewById(R.id.date_TextView);
        timeTextView = (TextView) itemView.findViewById(R.id.time_TextView);



        itemView.setClickable(true);
        itemView.setFocusableInTouchMode(true);

        itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Toast.makeText(itemView.getContext(), "Position: " + Integer.toString(getAdapterPosition()), Toast.LENGTH_LONG).show();
            }
        });

        linearLayout.setOnClickListener(new View.OnClickListener(){

            @Override
            public void onClick(View v) {

                Toast.makeText(itemView.getContext(), "Position: " + Integer.toString(getAdapterPosition()), Toast.LENGTH_LONG).show();
            }

        });

    }

}

所以现在,如果我单击linearLayout-在整个cardView上单击-我会看到它的位置!

积分:link

上一篇:[DOM] input 警告[DOM] Input elements should have autocomplete attributes(suggested:“current-password)


下一篇:PHP实现类似百度搜索自动完成(代码简单)