访问列表视图中的自定义对象

2024-01-12

我目前正在构建一个应用程序,该应用程序将请求发送到网络,然后解析结果并将其放入对象的 ArrayList 中。

然后,该列表将填充 ListView。 我想创建一个onClickListener这将使我知道单击了哪个对象,但我找不到实现此目的的正确方法。

将 onClick 分配给原始活动中的 ListView,或者在getView自定义适配器中的函数。

在我看来,这就像分配听众getView开销太大。

它是如何工作的?什么是更好的?

主要活动代码:

public class NoPicList extends Activity {
    ListView list;
    NoPicAdapter adapter;
    ProgressDialog mDialog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.no_pic_list);
        list = (ListView) findViewById(R.id.noPicListView);

        Bundle b = getIntent().getExtras();
        String request = b.getString("REQUEST");
        mDialog = new ProgressDialog(this);
        mDialog.setCancelable(false);
        mDialog.setMessage("Lodaing Data");
        mDialog.show();

        new GetNewsAndCalendar().execute(request);
    }

    @Override
    protected void onPause() {
        mDialog.dismiss();
        super.onPause();
    }

    class GetNewsAndCalendar extends
        AsyncTask<String, Void, ArrayList<Message>> {

        @Override
        protected ArrayList<Message> doInBackground(String... params) {
            String url = params[0];
            DOMFeedParser parser = new DOMFeedParser(url);
            return parser.parse();
        }

        @Override
        protected void onPostExecute(ArrayList<Message> result) {
            adapter = new NoPicAdapter(NoPicList.this, result);
            list.setAdapter(adapter);
            //FIRST OPTION TO INSERT onClickListener
            mDialog.dismiss();
        }
    }    //end of GetNewsAndCalendar
}

列表适配器的代码:

public class NoPicAdapter extends BaseAdapter {

    private ArrayList<Message> data;
    private Activity mActivity;
    private LayoutInflater inflater = null;

    public NoPicAdapter(Activity a, ArrayList<Message> result) {
        mActivity = a;
        data = result;
        inflater = (LayoutInflater) mActivity
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

    @Override
    public int getCount() {
        return data.size();
    }

    @Override
    public Object getItem(int position) {
        return position;
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View vi = convertView;
        if (convertView == null)
            vi = LayoutInflater.from(mActivity).inflate(R.layout.no_pic_list_item,
                null);

        TextView title = (TextView) vi.findViewById(R.id.noPicTitle);
        TextView subtitle = (TextView) vi.findViewById(R.id.noPicSubtitle);

        title.setText(data.get(position).getTitle());
        subtitle.setText(data.get(position).getDate());
    // SECOND PLACE TO INSERT THE onClickListener
        return vi;
    }
}

根据我的担忧,分配onClick 到原始 Activity 中的 ListView是个好主意,而不是将其分配给 ingetView()您的自定义适配器。因为在getView()你的适配器它总是创建一个new View.onClick() 的对象..

list.setOnItemClickListener(new OnItemClickListener()
 {
  @Override
  public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)
  {
   adapter.get(position);  
   // Get data from your adapter,   the above code of line give the custom adapter's object of   current position of selected list item     
  }   
 });  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

访问列表视图中的自定义对象 的相关文章

  • __stack_chk_fail_local 和 -fno-stack-protector - 如何让它工作?

    Update 我刚刚发现问题出在我的项目 libxml2 中包含的预构建库上 它是在启用堆栈保护的情况下构建的 因此依赖于 stack chk fail local方法 我现在已经重建了该库 fno stack protector也是 一切
  • ViewPagerIndicator:TabPagerIndicator 不可见

    我现在正在为 viewpageinderdicator 苦苦挣扎 当我使用 TitlePageIndicator 时 一切正常 但是当我尝试使用 TabPageIndicator 时我看不到它 它不会出现在层次结构视图中 我尝试了很多东西
  • 如何使用Multipart将图像上传到php服务器

    我一直很头疼 如何将图像上传到服务器 这对我来说是新任务 但对我来说很困惑 我在 stackoverflow 上搜索并用谷歌搜索 但我遇到了问题 我的意图是从 SD 卡上传照片并从相机拍照并上传到服务器 在ios中 这个任务已经完成 在io
  • 如何创建用于测试的对象的 PagedList?

    我一直在使用 Google 的 arch 库 但是让测试变得困难的一件事是使用PagedList 对于此示例 我使用存储库模式并从 API 或网络返回详细信息 因此 在 ViewModel 中 我调用此接口方法 override fun g
  • 从前台服务的活动中释放内存

    我有一个带有前台服务和一项活动的应用程序 该服务可以在启动时自行启动 也可以从 Activity 中启动 我注意到当服务在启动时自行启动时 内存使用量约为 3MB 一旦我打开该 Activity 内存使用量就会跃升至约 9mB 一旦 Act
  • 如何为键盘上的 xml 中的功能键设置不同的背景?

    我正在开发 Android 键盘应用程序 我尝试为普通键和功能键设置不同的背景 但它不起作用
  • Android Lollipop:将应用程序小部件添加到主屏幕时启动器崩溃

    添加小部件时 启动器在 Android Lollipop 上崩溃 并显示以下消息 在以前的 Android 版本上运行良好 编辑 这只发生在横向方向 12 16 12 35 10 208 E AndroidRuntime 960 java
  • Android Webview:无法调用确定的可见性() - 从未见过 pid 的连接

    我有一个 Android Webview 当我单击链接下载文件 pdf 图像等 时 我收到一条错误消息 Error message Cannot call determinedVisibility never saw a connectio
  • OnClickListener 无法解析为类型(Eclipse)

    你好 我是编程新手 我正在尝试构建我的第一个简单应用程序 我希望在按下 ImageButton 时播放一个简短的声音剪辑 在输入我的代码时 我收到语句错误 Button setOnClickListener new OnClickListe
  • 当我的 Android 设备不平坦时,我应该如何计算方位角、俯仰角、方向?

    我使用 Android 重力和磁场传感器通过 SensorManager getRotationMatrix 和 SensorManager getOrientation 来计算方向 这给了我方位角 俯仰角和方向数 当设备平放在桌子上时 结
  • 从c#读取android上的logcat

    我正在考虑制作一个 C 程序 该程序将从 Android 设备读取 logcat 输出并将其读入 C 程序 最初 它应该在手机连接时执行此操作 并且不需要在手机上安装特定应用程序 c 程序就能够检索 logcat 输出 此外 手机不应该需要
  • android /data/data文件夹在哪里

    好的 我是 Android 新手 我读过一些关于 data data安卓中的文件夹 但我在网上找不到这个文件夹指向哪里 有人可以解释一下吗 data data是设备内部存储的一部分 是所有应用程序的安装位置 除非您有 root 设备 否则无
  • 通话后返回App

    我正在尝试通过应用程序拨打电话 我希望它在通话后返回到应用程序 我在这个论坛问过这个问题 但我不明白答案 如何在 Android 中拨打电话并在通话结束后返回到我的活动 https stackoverflow com questions 1
  • Android SQLite 按 utf8 整理/排序

    我在 Android 上的 SQLite 表中有以下项目 平板电脑选项卡有 1 列 名称 文本 Beta Work pal User 如果我在 SQL Server 中有这些项目 并带有斯洛伐克语的排序规则 并且select from ta
  • 在 Android 上模拟触摸屏事件

    后台进程或软键盘是否可以创建触摸事件并将其发送到屏幕 就像屏幕被实际触摸一样 即模拟触摸屏事件 SDK里有一个工具叫Monkey http developer android com guide developing tools monke
  • Canvas.drawVertices(...) 不绘制任何内容

    下一类是红色三角形的视图 public class FreeStyleViewII extends View private final Paint paint new Paint private final int colors new
  • 找不到索引为-1的活动片段

    活动片段管理器问题当改变方向时 Caused by java lang IllegalStateException Could not find active fragment with index 1 at android support
  • 如何在 Debian 上连接 pybluez RFCOMM 服务器套接字?

    我在 python 中使用 pybluez 框架编写了这些代码片段 from bluetooth import server sock BluetoothSocket RFCOMM server sock bind PORT ANY ser
  • Android 子菜单布局

    我读到 Android 中的子菜单不支持图标 我想知道这是否已经改变 或者是否有类似的方法来生成支持图标的 子菜单 Currently This is My Submenu 这是它的 XML 文件 menu menu
  • Android 媒体播放器分贝读数

    我搜索过类似的主题 但找不到清晰简洁的答案 我一直在试图找出一种方法来确定 Android 媒体播放器播放时给定时间点的分贝级别输出 我无法找到一种方法来确定播放歌曲时给定时间点手机的音量有多大 我一直在查看媒体播放器 API 但我不知道如

随机推荐

  • ASP.NET 验证器比较两个日期相差不超过 12 个月

    我有两个TextBox控制开始日期和结束日期输入 我必须验证结束日期不大于开始日期 并且开始日期和结束日期之间的差异不超过 12 个月 你将不得不使用一个CustomValidator http msdn microsoft com en
  • 带有 plesk 的 nginx 反向代理

    我已经在这里看到了一些答案 但似乎没有一个解决方案有效 我有安装了 wordpress 的domain com 以及在domain com 6000上运行的脚本 我希望能够让 script domain com 显示 domain com
  • 何时使用 deferred.reject()?

    我很困惑什么时候使用deferred resolve and deferred reject 快速示例 var doSomething function var deferred Deferred if typeof myVar objec
  • 如何使用 Angular 验证表行数据?

    I have table with ng repeat对于表行 我想对单行数据进行内联编辑和验证 但不可能使用form or ng form里面的表 对于内联编辑 我使用输入ng show inside td 所以 我有两个问题 这是内联编
  • 具有大量 UNION 的 SPARQL 查询的替代方案

    我在 Virtuoso 中存储了一些命名图表 我想从提供的列表中找到与最多术语匹配的图表 我的查询是以编程方式构建的 如下所示 SELECT DISTINCT graph count DISTINCT match as matches WH
  • ModuleNotFoundError:没有名为“tensorflow.python.tools”的模块; “tensorflow.python”不是一个包

    Tensorflow 完全可以在 Jupyter Notebook 上工作 但是当我尝试 import tensorflow 在 pycharm 或只是在终端中 我得到 Traceback most recent call last Fil
  • React-Native-Styled-Components:类型“DefaultTheme”上不存在属性“backgroundColor”

    我正在为我的应用程序使用react native Typescript 我的样式组件版本是 styled components 5 3 0 我已经创建了自定义ThemeProvider并包装到我的根应用程序 我的应用程序有切换深色主题 我的
  • 如何使用 IBM Bluemix Track & Plan 管理多个组件

    我们有一个由多个不同组件 不同功能 语言 组成的应用程序 在 IBM Bluemix 中是否可以使用单个 Track Plan 功能来管理组件的工作项 但将源代码保留在单独的 git 存储库中 例如 我希望整个应用程序有一个积压工作 然后由
  • 如何通过 FTP 访问我的 Azure 应用服务文件? wwwroot 目录为空

    使用 Azure 门户中应用服务页面导航上的部署中心链接 我能够找到我的 FTP 凭据并使用它们轻松登录 但是 wwwroot 文件夹中除了hostingstart html 之外没有任何文件 但是 当我使用 Azure 控制台时 我的所有
  • Android NDK 无法使用两个 gradle 插件调试本机代码

    我使用 NDK 和实验性 gradle 插件 最初我能够调试我的本机代码 然后我看到了这个问题https github com googlesamples android ndk issues 119 https github com go
  • 如何在Android文件系统上模拟文件的“tail”命令?

    我的 SD 卡上有文件 我的应用程序使用它作为日志文件 是否可以通过 adb 实时监视文件的所有更改 喜欢与tail f sdcard myfile log命令 这似乎对我很有用 adb shell while true do cat sl
  • 如何使用OKHTTP发出post请求?

    我读了一些将 json 发布到服务器的示例 有人说 OkHttp 是 HttpUrlConnection 接口的实现 由Java提供 它提供了一个用于写入内容的输入流 不知道 或关心 该内容是什么格式 现在我想使用名称和密码参数向 URL
  • 提取 Objective-c 二进制文件

    是否可以提取二进制文件 获取二进制文件背后的代码 使用类转储 您可以看到实现地址 但是是否也可以看到实现地址中的代码 有什么办法可以做到吗 您的所有代码都会编译为单个指令 并放置在可执行文件的文本部分中 编译器负责将高级语言转换为更简单的处
  • 简单的、结构类型的 XML 数据绑定(无需代码生成或反射)

    我正在寻找一个 Java 库 它允许我将 XML 编组到 Java 对象树 反之亦然 有很多库可以让我将 XML 绑定到JavaBeans由某些代码生成工具生成 但是 我不需要这些 JAXB JiBX Castor 等 我需要的是一个工具
  • 如何做 pd.get_dummies 或其他方式?

    实际上 我的问题是基于 是否有更快的方法根据条件更新数据框列值 https stackoverflow com questions 46678400 is there a faster way to update dataframe col
  • WCF 数据服务支持的 Linq

    我正在寻找与 WCF 数据服务兼容的受支持 linq 扩展方法的完整列表 通过反复试验 我发现 First Func 和 Single Func 不受支持 还有其他吗 This http msdn microsoft com en us l
  • Java - 如何检查字符串中的重复字符?

    我需要编写一个函数来检查字符串中是否有重复值并返回唯一字符的计数 如果计数大于 3 则应返回 true 如果计数小于 3 则应该为 false 这是我一直在尝试的 注意我是java新手 private boolean isFormatVal
  • SSE (SIMD):向量乘标量

    我在程序中执行的常见操作是按标量缩放向量 V s 例如 1 2 3 4 2 2 4 6 8 除了首先在向量中的每个位置加载标量 例如 mm set ps 2 2 2 2 然后相乘之外 是否有 SSE 或 AVX 指令可以执行此操作 这就是我
  • 如何从 UIView 创建 CGLayer 进行离屏绘图

    我已经阅读了我认为是 Quartz 2D 编程指南的相关部分 但找不到以下内容的答案 他们似乎在文档中没有过多谈论 iOS 我的应用程序在UIView 我时不时地必须以某种方式更新绘图 例如更改其中一个形状的填充颜色 我保留CGPathRe
  • 访问列表视图中的自定义对象

    我目前正在构建一个应用程序 该应用程序将请求发送到网络 然后解析结果并将其放入对象的 ArrayList 中 然后 该列表将填充 ListView 我想创建一个onClickListener这将使我知道单击了哪个对象 但我找不到实现此目的的