【问题标题】:Working with LazyList by Fedor onitemclick implementation使用 Fedor onitemclick 实现的 LazyList
【发布时间】:2012-09-20 22:12:47
【问题描述】:

问这个问题对你们大多数人来说听起来很愚蠢,但我自己无法弄清楚,在找到答案之前无法进行下一个任务。 到目前为止,我已经从 Fedor 制作的 https://github.com/thest1/LazyList 下载了 LazyList 项目,我正在尝试了解它是如何工作的,以便我可以在自己的项目中实现它。我的问题是我不知道在哪里实现 onitemclicklistener 部分:

AdapterView.OnItemClickListener onitemClick = new AdapterView.OnItemClickListener()public   void onItemClick(AdapterView<?> parent, View view, int position,
            long id) {
noteId= //the item id from the list
Toast.makeText(getApplicationContext(), noteId, 2000).show();
}

我尝试将它添加到我的 mainActivity 中,但是我找不到如何连接到我的 LazyAdapter 来查找要在 toast 中显示的项目 ID。我的项目将在列表中包含一些其他信息(作为表格的几列),因此我希望能够使用项目 ID 从该行访问特定列。用简单的吐司进行测试会有所帮助。 谢谢,我希望你不要笑太多,并帮助我一点。

【问题讨论】:

    标签: android eclipse image listview


    【解决方案1】:

    我认为你以错误的方式处理它:AdapterView.OnItemClickListener 是一个接口,onItemClick() 方法需要四个参数...我认为这就是你想要做的:

    ListView listView = (ListView) findViewById(R.id.list);
    listView.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Toast.makeText(getApplicationContext(), id + "", 2000).show();
        }
    });
    

    【讨论】:

    • LazyAdapter.java 与 mainActivity.java 是不同的文件,这就是为什么我找不到连接的方法
    • 没关系。 ListView有一个指向它的适配器的链接,实际上onItemClick()中的id参数指的是LazyAdapter提供的id
    • 但是id很长不能转成文字
    • 对不起,我更新了我的答案。您可以使用id + ""String.valueOf(id)long 等原始数据类型转换为字符串。
    猜你喜欢
    • 1970-01-01
    • 2012-01-04
    • 1970-01-01
    • 2019-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    相关资源
    最近更新 更多