Android 如何识别来自外部适配器的 Listview 按钮单击事件?

2024-03-01

我有一个自定义列表视图,其中有按钮作为项目。

我想为这个按钮设置监听器。目前我在适配器中使用以下代码来识别它。

  holder.editDetails.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            //rowItem.getUserID();
            Toast.makeText(getContext(), "Done", Toast.LENGTH_SHORT).show();

            }
    });

无论如何,有没有办法在适配器外部识别此按钮 onclick 事件。(在 Main.class 中),例如

  listView.setOnItemClickListener(new OnItemClickListener() {
   });

抱歉我的英语不好


您可以为此创建一个界面。将您的接口传递给适配器并在单击按钮时调用它。

public interface onDoneClick{
    void onClick(View v, int position);
}

在此界面中,我们将传递适配器上的位置以及视图。

接下来将接口添加到您的适配器的构造函数并将其保存在字段中。例如:

public MyAdapter(Context context, int textViewResourceId, List<MyObject> objects,onDoneClick listener ) {
    super(context, textViewResourceId, objects);
    mListener = listener;
}

现在我们有了监听器,只需在您的设备上调用它即可holder.edit详情点击监听器:

    @Override
    public void onClick(View v) {
         mListener.onClick(v,position);//where position is the position in the adapter
      }

接下来在你的activity当您创建适配器时,只需将侦听器传递给它:

    new MyAdapter(this, 0, myobjectList, new onDoneClick() {
        @Override
        public void onClick(View v, int position) {
            //whatever you want to do.
        }
    });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 如何识别来自外部适配器的 Listview 按钮单击事件? 的相关文章

  • 如何在 TableRow 的一个单元格中添加超过 1 个视图?

    如上所述 如何将 2 个视图放入一个单元格中tablerow 我创建了一个表格布局 并通过代码添加行 下面是我的代码 TableLayout v TableLayout inflater inflate R layout featureit
  • tns run android --emulator 不工作 - NativeScript

    我已按照此步骤操作link http docs nativescript org tutorial chapter 1 当我使用命令运行时tns run android emulator 我在命令提示符中收到以下错误 Configuring
  • 使用 Gradle 检测 IDE 环境

    无论如何 有没有办法检测我正在运行我的项目的环境 像这样的事情 构建 gradle def usingIntelliJ def usingAndroidStudio if usingIntelliJ buildConfigField Str
  • 使用 Firebase Java API 检索/格式化数据的最佳方式

    我在用着Firebase用于数据存储Android项目 并使用Firebase Java API来处理数据 不过 我不确定我是否尽可能高效地完成此操作 并且我希望获得一些有关检索和格式化数据的最佳实践的建议 我的Firebase存储库看起来
  • if-else 无法与我的复选框一起正常工作

    我的应用程序中有一个网格 当我选择一个项目时 它会前瞻性地加载该项目 我只想允许仅在以下情况下选择该复选框isMayoBaseAvailable返回真 这是我使用的代码 当我使用此代码并调试它时它工作正常 但是当我运行应用程序并检查它时总是
  • Android Studio 3.2.1 升级后构建错误

    我正在从 Udacity 构建一个示例项目 到目前为止 一切正常 但升级到 Android Studio 3 2 1 后 我遇到了下面的构建错误 摇篮版本 4 6 项目链接 https github com udacity ud851 Su
  • Android:进程已死亡 - 资源不足?

    我编写的简单 HTTP GET 请求有一个小问题 该请求每 X 分钟请求一个 URL 我每天都会遇到一两次进程在 GET 请求期间停止的情况 这是调试日志的示例 12 07 16 29 22 650 V TAG 11655 Executin
  • 是否可以将 BitmapDescriptor 转换为 Bitmap?

    我需要将 BitmapDescriptor 转换为 Bitmap 我可以使用以下代码将位图转换为 BitmapDescriptor BitmapDescriptor bd BitmapDescriptorFactory fromBitmap
  • Jack(Java Android 编译器套件)将如何影响 Scala 开发人员

    现在随着公告Jack https source android com source jack html谷歌阐明了 Java 与 Android 相关的可预见的未来 但这对 Scala 和其他基于 JVM 的语言开发人员有何影响 尤其 Sc
  • 安装后隐藏 Android 应用程序图标

    我看到谷歌应用程序中有一些GPS应用程序 安装后 该应用程序将没有图标显示 但会在后台运行服务 我将如何实现这一目标 要从启动器中删除应用程序 请不要将这些行与主要活动放在AndroidManifest xml
  • Android mediacontroller 播放暂停控件无法正确刷新

    我在我的活动中使用了 MediaController 它工作正常 但是当我第一次播放视频时 应该有 b 可见的暂停按钮 但相反 有播放 当我按下该按钮时 视频会正确暂停 状态保持不变 之后它工作正常 视频完成时也会发生同样的事情 这是一个错
  • 如何在运行时添加TextView?

    如何在运行时向布局添加新的 TextView 是否可以 完整的解决方案 View parent parent view where to add ViewGroup layout new LinearLayout context layou
  • 如何构建 APK 和应用程序动态加载的单独库

    简短的总结是 如何构建 APK 和单独的库 我指的是某种形式的类集 理想情况下也是资源 例如 JAR AAR 或 DEX 文件 但不将这些库包含在应用程序 相反 应用程序在运行时加载它们 Detail 所以我的主要问题是如何构建这样的应用程
  • Android,在连接wifi的情况下与移动数据通信,无需上网

    我有一个汽车配套应用程序 需要与 WiFi 和移动数据网络进行通信 我的车辆控制单元提供了一个无需互联网访问的 WiFi 网络 它公开了我们可以从应用程序调用的 API 服务 除此之外 我们还需要使用手机移动数据 3G 4G 与另一个可通过
  • 在选择项目之前设置微调器的文本

    我有一个包含三个项目的微调器 我使用 XML 字符串数组资源来为其提供数据 当您打开活动时 微调器通常会显示数组列表中的第一项 我想更改它并在选择项目之前在微调器中显示文本 选择一个 我怎样才能做到这一点 您可以通过以下两种方式之一进行操作
  • android.R.layout.simple_list_item_1是什么?

    在我看到的所有示例中 他们在创建 ArrayAdapter 时仅使用 android R layout simple list item 1 android R layout simple list item 1是什么 它只是一个名为sim
  • 应用程序启动时显示徽标几秒钟

    我想在应用程序启动并且菜单可见之前显示徽标几秒钟 当它消失时我也想使用一些 我应该创建一个新活动吗 我可以在布局中设置它吗 为包含您的徽标的初始屏幕定义一个布局 然后将此代码添加到您的活动中 public void onCreate Bun
  • android.media.Ringtone.play() 在播放 28 次后停止工作

    我有一个打开了几个小时的应用程序 并使用后台服务并附加了前台通知 每隔一段时间就会使用以下方式播放声音 try Ringtone r RingtoneManager getRingtone context uri r play catch
  • 如何使用支持FileProvider将内容分享给其他应用程序?

    我正在寻找一种使用 Android 支持库与外部应用程序正确共享 而不是打开 内部文件的方法文件提供者 http developer android com reference android support v4 content File
  • Android API 8、10 ContactsContract.Data.HAS_PHONE_NUMBER 没有这样的列

    以下查询在我的设备上运行良好 API 15 它在我运行 API 8 或 API 10 的模拟器中不起作用 这是查询 Cursor contactsCur getContentResolver query ContactsContract D

随机推荐