自定义 ListActivity 和 onListItemClick 用于内部视图

发布于 2024-11-17 05:17:40 字数 1176 浏览 3 评论 0原文

我有自定义 ListView 和扩展 ArrayAdapter 的自定义适配器。 ArrayAdapter 正在使用两个视图来扩充 xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="?android:attr/listPreferredItemHeight">

    <TextView android:id="@+id/filePickerTextView1"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:minHeight="?android:attr/listPreferredItemHeight"
        android:focusable="true" android:text="item" />

    <ImageView android:layout_width="wrap_content"
        android:focusable="true" android:src="@drawable/icon"
        android:layout_height="fill_parent" android:id="@+id/filePickerImageView1"
        android:layout_alignParentRight="true" android:layout_alignRight="@android:id/text1"></ImageView>

</RelativeLayout>

在 ListActivity 方法 onListItemClick 中,我正在获取relativelayout 视图。我需要的是,知道单击了哪个确切视图(TextView 或 ImageView)。我可以通过设置侦听器在适配器中获取它,但我在 ListActivity 中需要它。原因是,我需要根据单击的视图引发 setResult。

I have custom ListView with custom adapter extending ArrayAdapter.
ArrayAdapter is inflating xml with two views:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="?android:attr/listPreferredItemHeight">

    <TextView android:id="@+id/filePickerTextView1"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:minHeight="?android:attr/listPreferredItemHeight"
        android:focusable="true" android:text="item" />

    <ImageView android:layout_width="wrap_content"
        android:focusable="true" android:src="@drawable/icon"
        android:layout_height="fill_parent" android:id="@+id/filePickerImageView1"
        android:layout_alignParentRight="true" android:layout_alignRight="@android:id/text1"></ImageView>

</RelativeLayout>

In ListActivity method onListItemClick i'm getting RelativeLayout view. What i need is, to know which exact view was clicked (TextView or ImageView). I can get this in adapter by setting listeners, but i need it in ListActivity. The reason is, that i need to raise setResult based on clicked view.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

小…楫夜泊 2024-11-24 05:17:40

在自定义适配器类中,您可以使用下面的代码,然后单击 Textview,相应地您将收到 toast 消息,然后单击 imageview,然后相应地获得 toast 消息。

 holder.filePickerImageView1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            // toast message;

        }
    });

  holder.filePickerTextView1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            // toast message;

        }
    });

In Custom adapter class you can used below code then click on Textview accordingly you will get toast message and click on imageview then accordingly get toast message.

 holder.filePickerImageView1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            // toast message;

        }
    });

  holder.filePickerTextView1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            // toast message;

        }
    });
慕烟庭风 2024-11-24 05:17:40

5 个月后,我回到我的项目,并找到了我的问题的解决方案。
最简单的方法是将上下文传递给自定义适配器。

https://stackoverflow.com/a/4197364/214081

After 5 months I'm back to my project and I found solution for my question.
Easiest way is to pass context to custom adapter.

https://stackoverflow.com/a/4197364/214081

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文