单击项目 RecyclerView 时不显示 toast

2023-12-15

好吧,我知道,可能已经有人问过这个问题了。我已经为我的问题找到了可能的解决方案这个链接。但是,由于未知的原因,该解决方案对我不起作用。 我想显示一个Toast当一个项目(aCardView) 在 a 内单击RecyclerView. This 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();
            }

        });

    }

}

所以现在,如果我点击线性布局 - 那么在整个cardView上 - 我会看到它的位置!

学分:link

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单击项目 RecyclerView 时不显示 toast 的相关文章

随机推荐

  • 在 Xcode 6 中选择不同的模拟器

    如何在 Xcode 6 中选择不同的模拟器 iOS 8 除外 我已经成功安装了 iOS 7 模拟器Xcode gt 首选项 gt 下载 但它没有在可用的运行模拟器中列出 有人知道如何在 Xcode 6 中安装 iOS7 模拟器吗 一旦安装了
  • 如何在 Java 中使用 .Net 程序集

    我想在 Java 应用程序中使用 Microsoft Net 程序集 有什么办法可以做到这一点吗 任何帮助将不胜感激 Java 和 Net 运行完全不同的系统 分别是 JVM 和 CLR 不可能直接将一个加载到另一个中并使用它 它们是不兼容
  • 如何将JSON字符串转换为Java对象的List?

    这是我的 JSON 数组 firstName abc lastName xyz firstName pqr lastName str 我的 String 对象中有这个 现在我想将它转换为Java对象并将其存储在java对象的List中 例如
  • android - 折叠工具栏和片段布局不能一起工作

    在我的应用程序中 我有两个片段和一个 MainActivity Activity main xml 包含一个折叠工具栏 当片段为空时 它非常适合我 在我的第一个片段中 我从服务器获取 json 数据并将其放入片段活动内的列表视图中 数据已正
  • 使用 PHP 解析“top”命令(Shell)的输出

    我正在尝试使用 PHP 导出 top 命令 unix 的输出 使用 exex 函数调用和读取命令 输出非常简单 但问题是 top 命令输出 顺序 名称等 始终相同吗 或者与我使用的发行版有关 有什么方法可以在 UNIX 系统上 一般 解析这
  • Android:如何获取绘制路径的面积大小?

    我的问题是测量路径的表面积 我生成一个随机路径并将其绘制在画布上 触摸这条闭合路径后 我想获取这条绘制路径的面积大小 我怎样才能得到这条路径的实际面积大小 路径 形状 如下所示 链接到图像 我找到了解决方案 我从路径生成一个区域 并使用 R
  • 如何获取bucket文件的urn

    请告诉我如何获取桶文件的瓮 您可以获取上传到存储桶时响应中包含的 urn 但我想获取已上传到存储桶的文件的 urn 有什么办法吗 您可以使用GET buckets bucketKey objects端点以获取存储桶中所有文件的列表 在响应中
  • 部署在 Azure 上时看不到 C# Azure Function

    将我的 C Azure Function 从 VSCode 部署到 Azure 时 我似乎在门户上看不到它 我还注意到 消息 无 HTTP 触发器 专门针对 C 相关函数出现 因为我已尝试使用 Azure 函数扩展部署我的 Python 函
  • 如何在NestedScrollView中使用RecyclerView?

    如何使用RecyclerView inside NestedScrollView RecyclerView设置适配器后内容不可见 UPDATE布局代码已更新
  • 如何使用批处理脚本查找大阶乘

    echo off if 1 echo Missing parameter Try passing the number as a parameter like factorial 10 without the quotes goto end
  • 在现有第一个表单中使用弹出表单中的功能

    我无法弄清楚如何正确执行此操作 基础知识是我有 1 个表格 用于填写我保存在 2 个列表中的各种数据 第二种形式是通过菜单选项调用的 该菜单选项显示所有当前数据的概述 它是这样打开的 private void OpenOverviewFor
  • Div 内未知大小文本的底部填充

    Here I want to have a text padding margin on the bottom part of my Div to have a more organized and tidier look 我希望它能够灵活
  • 如何格式化文本字段javafx

    我希望能够以 hh mm ss 格式在 javafx 文本字段中输入时间 我将如何格式化文本字段 我已经获得了正则表达式方法 因此它只接受数字作为输入 public void format TextField t String regex
  • 为什么使用 == 比较两个整数有时有效有时无效? [复制]

    这个问题在这里已经有答案了 我知道我在使用 时比较参考 这不是一个好主意 但我不明白为什么会发生这种情况 Integer a 100 Integer b 100 Integer c 500 Integer d 500 System out
  • 在 Android 中使用 OpenCV 从 CameraFrame 检测 RGB 值

    我想检测 RGB 中哪个值最大 我怎样才能检测到这一点 我想显示哪种颜色出现频率最高 RGB 值 例如 在图像中 红色出现率最高 因此它将显示颜色为红色 并以百分比形式显示其值 我通过获取图像的行和列进行了尝试 如下所示 public Ma
  • 获取 wifi 信号强度

    有没有办法在C 中获取wifi信号强度 目前我也得到了同样的结果 Process proc new Process proc StartInfo CreateNoWindow true proc StartInfo FileName net
  • 为什么我的方法会陷入无限递归?

    我编写了一种方法来帮助构建四叉树 每个四叉树都有一个根节点 一个根节点有4个子节点 我使用深度递归来阻止该函数划分太多次 传入的深度等于正方形边长以 2 为底的对数 始终传入正方形 然而 我从中得到了无限递归 有人明白为什么吗 当我运行它时
  • 根据查询结果设置用户变量

    是否可以根据 MySQL 中的查询结果设置用户变量 我想要实现的是这样的 我们可以假设两者USER and GROUP是独一无二的 set user 123456 set group select GROUP from USER where
  • 如何动态改变背景颜色的资源?

    我有以下控制 我想更改某些事件触发器的背景颜色 我想做这个clrGray资源作为某些事件点击的颜色 我已经尝试过以下方法 但没有成功 XAM
  • 单击项目 RecyclerView 时不显示 toast

    好吧 我知道 可能已经有人问过这个问题了 我已经为我的问题找到了可能的解决方案这个链接 但是 由于未知的原因 该解决方案对我不起作用 我想显示一个Toast当一个项目 aCardView 在 a 内单击RecyclerView This T