【问题标题】:ListView. Getting itemId when click on imageView列表显示。单击imageView时获取itemId
【发布时间】:2014-09-13 07:35:19
【问题描述】:

在我的 ListView 中,每个项目都由 ImageView 和 TextView 组成。 当我点击图片时我想要 - 获取 itemid(然后在对话框中显示图片)。

如何捕捉 ImageView 的点击并获取 ListItem 的 Id?

ImageView image;

    @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.content_friends);

            contactsList=(ListView)findViewById(android.R.id.list);
            contactsList.setOnItemClickListener(clickListener);

            image = (ImageView)findViewById(R.id.image_a);
            image.setOnClickListener(imListener);

        }

        OnItemClickListener clickListener = new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long itemId) {            
            Toast.makeText(getApplicationContext(), "listItem " + itemId, Toast.LENGTH_SHORT).show();

            }
        };

        OnClickListener imListener = new OnClickListener() {

            @Override
            public void onClick(View v) {
                   Toast.makeText(getApplicationContext(), "Image of listItem ", Toast.LENGTH_SHORT).show();

            }
        };

【问题讨论】:

  • 您需要接受对您有用的答案,以便下次您提问时——人们会毫不犹豫地发布答案!
  • 你知道如何在不点击的情况下获取列表中显示元素的 id 吗?
  • 您将在下面的链接中找到答案。试试看:stackoverflow.com/a/14939376/1263588

标签: android listview


【解决方案1】:

你真的不需要两个Listeners

但是,如果您仍然坚持,您可以在代码中正确单击项目的位置 - onItemClick() 方法的 arg2 参数为您提供项目的位置。如果您将所有图像 ID 存储在 ArrayList 中,则可以使用 imageArray[position] 检索被点击的图像。

这里有一些提示:

Custom List Row

Handling onItemClick

【讨论】:

    猜你喜欢
    • 2016-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-09
    • 1970-01-01
    • 1970-01-01
    • 2015-02-01
    相关资源
    最近更新 更多