在 RecyclerView 中调用 ViewHolder 的 Activity?

2024-01-09

我有一个 RecyclerView,它正在加载我的字符串数组的内容,工作正常,但是我想根据他们按下的视图打开一个新活动。

我所做的是创建一个名为类的数组,如下所示:

<array name="classes">
    <item>ClassOne</item>
    <item>ClassTwo</item>
    <item>ClassThree</item>
    <item>ClassFour</item>
</array>

它们存储在一个数组中,并传递到下面的 MainActivityList 适配器:

String[] classes = resource.getStringArray(R.array.classes);
MainActivityList adapter = new MainActivityList(titles,content, images, classes);
recyclerView.setAdapter(adapter);

我已设法将 OnClickListener 添加到 ViewHolder 并将分配给每个视图的类输出到日志中,但是我无法弄清楚或开始工作,如何启动另一个活动。

例如,类名称类似于 ClassOne.class

public class MainActivityList extends RecyclerView.Adapter<MainActivityList.ViewHolder>  {
    private String[] mTitles;
    private String[] mContent;
    private String[] mClasses;
    private TypedArray mImages;
    private Context context;

    public MainActivityList(String[] titles, String[] content, TypedArray images, String[] classes) {
        this.mTitles = titles;
        this.mContent = content;
        this.mImages = images;
        this.mClasses = classes;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup viewGroup,int i) {
        final View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.activity_main_card, viewGroup, false);
        ViewHolder vh = new ViewHolder(v);

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

                ViewHolder vh = (ViewHolder)v.getTag();
                Log.v("DEBUG", "Clicked" + vh.classes);
            }
        });
        return vh;
    }

    public void onBindViewHolder(ViewHolder holder, int position) {
        holder.titleView.setText(mTitles[position]);
        holder.contentView.setText(mContent[position]);
        holder.imageView.setImageDrawable(mImages.getDrawable(position));
        holder.classes = mClasses[position];
    }

    public class ViewHolder extends RecyclerView.ViewHolder {
        public  TextView titleView;
        public  TextView contentView;
        public  ImageView imageView;
        public String classes;

        public ViewHolder(View v) {
            super(v);
            titleView = (TextView) v.findViewById(R.id.card_title);
            contentView = (TextView) v.findViewById(R.id.card_content);
            imageView = (ImageView)v.findViewById(R.id.card_image);
            v.setTag(this);
        }
    }

    @Override
    public int getItemCount() {
        return mTitles.length;
    }

}

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

在 RecyclerView 中调用 ViewHolder 的 Activity? 的相关文章

  • Java 线程 JavaDoc

    我编写了一个只能在特定线程上调用的方法 是否应该将标准注释或注释添加到方法的 javadoc 中来表示这一点 不知道有任何这样的标准注释 Java 并发实践 http www javaconcurrencyinpractice com 在第
  • ImageIO read() 和 write() 操作后 GIF 图像变得错误

    我有这个代码 它只是读取 GIF 文件 用背景重新绘制它 然后输出到新的 GIF 文件 问题是结果文件变得奇怪 我不知道为什么它的质量变得很差 JPG 文件不会出现此问题 如何修复它 import java awt Color import
  • 如何在运行时添加TextView?

    如何在运行时向布局添加新的 TextView 是否可以 完整的解决方案 View parent parent view where to add ViewGroup layout new LinearLayout context layou
  • 将项目导入 Eclipse 后出现“必须重写超类方法”错误

    任何时候我必须将我的项目重新导入到 Eclipse 中 如果我重新安装了 Eclipse 或者更改了项目的位置 几乎全部我的重写方法的格式不正确 导致错误 该方法必须重写超类方法 值得注意的是 无论出于何种原因 Android 项目中方法参
  • 是否可以使用“WHERE”子句来选择SQL语句中的所有记录?

    晚上好 我很好奇是否可以在 SQL 语句中创建一个 WHERE 子句来显示所有记录 下面一些解释 随机 SQL 语句 Java JSP示例 正常情况 String SqlStatement SELECT FROM table example
  • 如何构建 APK 和应用程序动态加载的单独库

    简短的总结是 如何构建 APK 和单独的库 我指的是某种形式的类集 理想情况下也是资源 例如 JAR AAR 或 DEX 文件 但不将这些库包含在应用程序 相反 应用程序在运行时加载它们 Detail 所以我的主要问题是如何构建这样的应用程
  • Guice 字段注入不起作用(返回 null)

    我在使用 Guice 时遇到空值问题 接下来我将向您展示一个类似场景的示例 我知道字段注入是一种不好的做法 但我希望它在演示中像这样工作 我有一个名为B 这是我要注入的 class B Inject public B public void
  • 为 Android 编译时显示 FFMPEG 错误

    我正在尝试将 ffmpeg 添加到我的 android 项目中 我使用的是 ubuntu 14 04 操作系统 我正在关注此链接 Link https software intel com en us android blogs 2013
  • 通过命令行增加Java中的MaxPermSize内存

    您能否解释一下如何增加此 PermSpace 大小 我正在使用 Gate 应用程序并加载大量数据和大量插件 不幸的是每次运行后都会出现有关内存不足 maxPermSpace 的错误 我到处搜索 但我找不到如何通过命令行增加这个大小 或者可能
  • Android - 将值从 sqlite 数据库加载到数组列表

    我是安卓新手 我有一个使用 SQLite DB 的应用程序 我需要将值从数据库推送到对象类型的数组列表 我使用的代码在这里给出 private ArrayList
  • AWS Java SDK 中 DynamoDB v2 的迁移详细信息?

    有没有人对新的命名空间进行了更改 com amazonaws services dynamodbv2 以及 AWS Java SDK 1 4 2 及更高版本 中 DynamoDB 的接口 本地二级指数的发布显然需要根据1 4 2 发行说明
  • 如何指示 yum 安装特定版本的 OpenJDK

    我尝试安装openjdk in the redhat服务器 如何安装指定版本 我要安装的版本是 11 0 4 使用以下命令安装的版本是11 0 6 yum install java 11 openjdk devel 曾与 yum showd
  • sqlite3权限被拒绝android

    我试图直接在 Nexus 上访问我正在开发的应用程序的数据库 但当我尝试执行 sqlite3 命令时 我收到 权限被拒绝 的消息 我还尝试在 root mod 中启动 adb 但再次 设备上的权限被拒绝 我想我必须使用模拟器来做到这一点 但
  • 删除子类中的注释?

    我有一个子类 需要一个注释 在删除的父类中声明 做这个的最好方式是什么 public class Parent MyAnnoation String foobar public class Child extends Parent here
  • Android API 8、10 ContactsContract.Data.HAS_PHONE_NUMBER 没有这样的列

    以下查询在我的设备上运行良好 API 15 它在我运行 API 8 或 API 10 的模拟器中不起作用 这是查询 Cursor contactsCur getContentResolver query ContactsContract D
  • 如何将数据从普通 Android 应用程序传递到 Google glass 应用程序,反之亦然?

    我不知道 GoogleGlass 只是搜索它 我已经检查了下面的链接 但我认为下面的链接已被弃用 我无法找到传递数据的方法 我已经搜索了 4 天以上 但无法找到传递数据的方法 想要为谷歌眼镜创建应用程序 https stackoverflo
  • 为什么在 this 方法中添加 If 语句会大大降低速度?

    我在中遇到过这个回答另一个问题 https stackoverflow com questions 12233594 faster way to apply alpha to a jpeg in an android app 我试图诊断哪些
  • 如何使用属性文件在log4j2中创建多个日志文件?

    我正在使用 property 文件在特定路径中创建日志文件 但我正在使用它创建单个文件 以下是我的属性文件代码 status error dest err name PropertiesConfig property filepath ap
  • Google Analytics 数据中出现未知的应用版本

    我有一个Android应用程序发布到Google Play商店 它的apk文件也被我不认识的人发布到一些中国商店 今天我注意到Google Analytics数据中一个非常奇怪的情况 我从未发布过1 6 3版本 但我注意到它在那里 有37个
  • 获取给定字符串日期中该月的最后一天

    我的输入字符串日期如下 String date 1 13 2012 我得到的月份如下 SimpleDateFormat dateFormat new SimpleDateFormat MM dd yyyy Date convertedDat

随机推荐