如何处理带有图像和文本视图的自定义列表视图中的图像视图的点击?

2024-02-07

我想知道我们如何处理带有图像和文本视图的自定义列表视图上的图像视图的点击。我什至使 Imageview 可点击。

这是我的代码

自定义适配器.java

public class CustomAdapter extends ArrayAdapter<RowItem>  {

    Context mcontext;
    ArrayList<RowItem> rowItem = new ArrayList<RowItem>();
    private RowItem row;
    RowItem data;


    public CustomAdapter(Context context, int resourceId,
                                 ArrayList<RowItem> items) {
        super(context, resourceId, items);
        this.mcontext = context;
        this.rowItem =items;
    }

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


    @Override
    public long getItemId(int position) {
        return rowItem.indexOf(getItem(position));
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent)
    {
       final RowItem row_pos;

        if (convertView == null)
        {
            LayoutInflater mInflater = (LayoutInflater) mcontext
                    .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
            convertView = mInflater.inflate(R.layout.list_item,parent,false);
        }

        RoundImageView imgIcon = (RoundImageView) convertView.findViewById(R.id.profile_pic);

        TextView txtTitle = (TextView) convertView.findViewById(R.id.member_name);
        TextView txtSubTitle = (TextView) convertView.findViewById(R.id.status);
        TextView txtRightTitle = (TextView) convertView.findViewById(R.id.contact_type);

        row_pos = getItem(position);


        if (row_pos.getIcon() != null)
        {
            imgIcon.setImageURI(Uri.parse(row_pos.getIcon()));
        }
        else
        {
            imgIcon.setImageResource(R.mipmap.ic_launcher);
        }


        imgIcon.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v)
            {
                // Create custom dialog object
                final Dialog dialog = new Dialog(getContext());

                // Include dialog.xml file
                dialog.setContentView(R.layout.dialog);

                ImageView img = (ImageView)dialog.findViewById(R.id.img);

                if (row_pos.getIcon() != null)
                {
                    img.setImageURI(Uri.parse(row_pos.getIcon()));
                }
                else
                {
                    img.setImageResource(R.mipmap.ic_launcher);
                }
            }
        });


        if(row_pos.getTitle() == " ")
        txtTitle.setText(row_pos.getPhone_number());
        else
        txtTitle.setText(row_pos.getTitle());

        txtSubTitle.setText(row_pos.getSub_title());
        txtRightTitle.setText(row_pos.getRight_title());

        return convertView;
    }

}

这是我的 xml 布局

列表项.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="fill_parent"
    android:paddingLeft="8dp"
    android:paddingRight="8dp"
    android:descendantFocusability="blocksDescendants">

    <com.example.rama.hello.RoundedImageView.RoundImageView
        android:id="@+id/profile_pic"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_marginTop="10dp"
        android:contentDescription="desc"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:clickable="true"
        />

    <TextView
        android:id="@+id/member_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:layout_toRightOf="@+id/profile_pic"
        android:paddingBottom="10dp"
        android:text="txt"
        android:paddingLeft="20dp"
        android:textColor="#000000"
        android:textSize="20sp" />

    <TextView
        android:id="@+id/status"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/member_name"
        android:layout_below="@+id/member_name"
        android:text="txt"
        android:paddingLeft="20dp"
        android:textColor="#000000"
        android:textSize="16sp" />

    <TextView
        android:id="@+id/contact_type"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/member_name"
        android:layout_alignBottom="@+id/member_name"
        android:layout_alignParentRight="true"
        android:text="txt"
        android:layout_marginLeft="7dp"
        android:textSize="16sp" />

</RelativeLayout>

不使自定义视图的任何元素可点击并实现 listView.setOnItemClickListener(new ListClickHandler());

事实上,在长且可滚动的列表中,我碰巧单击了一个图像项,但描述不正确。它属于另一幅图像。 我解决了这个问题,消除了在自定义列表视图中拥有可单击图像或按钮的所有可能性,并在其上实现了单击侦听器。

看这个例子:

https://github.com/alessandroargentieri/AuctionExample/blob/master/app/src/main/java/argentieri/alessandro/crossoverauction/ViewActivity.java https://github.com/alessandroargentieri/AuctionExample/blob/master/app/src/main/java/argentieri/alessandro/crossoverauction/ViewActivity.java

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何处理带有图像和文本视图的自定义列表视图中的图像视图的点击? 的相关文章

随机推荐

  • 无状态React如何传递密钥

    我不确定如何将密钥传递给无状态反应组件 MyComponent props gt return span props somevalue span aCollection map value index gt
  • 将 json 转换为对象列表时出现 ClassCastException

    我在用Jackson http jackson codehaus org 1 7 3 javadoc org codehaus jackson map ObjectMapper html处理json数据的库 我创建了一个generic将 j
  • 在构造函数中传递控制器总是不好的做法吗?

    我偶尔会通过传入视图控制器实例本身来实例化视图控制器中的类 以便我创建的对象可以调用控制器的方法来更新视图 这是总是 经常还是从来都不是一个坏习惯 具体来说 ViewController h 有 void updateButtonValue
  • 无法使用 VS2008 SP1 进入 .NET Framework 源代码

    不知何故 我的 VS2008 SP1 失去了进入 NET 框架源代码的能力 我一直在尝试使用复选框 我已经重新删除了符号缓存文件夹十几次 我尝试过各种调试符号服务器 它所做的只是下载一些 PDB 文件 但是当我尝试在 NET 中选择堆栈框架
  • 是否可以在 xelatex 中创建带有这样的数字的页脚?

    是否可以在 xelatex 中创建像上面这样的页脚 在第一页上要在右侧对齐的数字 在第二页上要在左侧对齐的数字 顶部边框是一个很好的补充 但不是必需的 我不需要数字旁边的任何文本 部分名称 documentclass 11pt a4pape
  • 检测 JSON 对象列表中的重复条目

    我有一个用 java 解析的 JSON 文件 它有几个对象列表 如下所示 phoneNumbers type home number 212 555 1234 type home number 212 555 1234 type fax n
  • 如何在asp.net core web api(无第三方)中实现JWT刷新令牌?

    我正在使用使用 JWT 的 asp net core 实现 Web api 我没有使用第三方解决方案 例如我正在尝试学习的 IdentityServer4 我已经让 JWT 配置正常工作 但对如何在 JWT 过期时实现刷新令牌感到困惑 下面
  • 如何使用git复制rails应用程序并部署到heroku

    我是编程和 Rails 的新手 我想创建一个我正在使用的 Rails 应用程序的副本 以无害地尝试一些东西 有没有一种简单的方法可以实现这一点 是的你可以 这些命令对于像我这样的新手来说并不明显 并且可能对其他人有帮助 首先 根据您计划调用
  • xDebug 和 PHPUnit 的代码覆盖率说是 100%,实际上不是

    我有以下功能 function foo p if p null throw new Exception bla if p null throw new Exception bla 我对此函数的测试没有涵盖抛出异常的行 但 PHPUnit 告
  • 在 Android 上使用 DU

    有没有类似于 unix 命令 du 我可以在 adb shell 上使用的东西 我正在尝试找到一种方法来查看每个文件有多大 因为我有一个应用程序变得非常大并且失去控制 并且我正在尝试确定它具体是哪个文件 数据库 以便我可以解决问题 我正在
  • 如何从 Ruby on Rails 输出 JSON?

    我希望有一个通过 AJAX 创建 更新的模型 在 Ruby on Rails 中如何做到这一点 另外 更具体地说 如何在 RoR 中输出 JSON def create response success gt false source So
  • 如何在Python中很好地打印出字典?

    我刚刚开始学习 python 正在构建一个文本游戏 我想要一个库存系统 但我似乎无法打印出字典而不使其看起来很丑 这是我到目前为止所拥有的 def inventory for numberofitems in len inventory c
  • 如何销毁tinyMce?

    我使用的是最新版本3 4 b3 我将它放在一个对话框中 它的内容是动态创建的 所以这意味着tiny 应该将自身绑定到的文本区域每次都会被创建 因此 当我第一次加载对话框时 会出现微小的情况 如果我第二次加载该对话框 该对话框将不会再次显示
  • 为什么 Rails RSpec 响应显示 302 而不是 401?

    我已经被这个问题困扰好几天了 我不知道它出了什么问题 几个月前我开始使用 Ruby on Rails 目前正在学习使用 API 进行身份验证 我看过其他类似的主题here https stackoverflow com questions
  • 在 BinaryObjects 的 Ignite 缓存上执行 SQL

    我正在从 Spark 数据帧创建 BinaryObject 的缓存 然后我想在该 ignite 缓存上执行 SQL 这是我的代码在哪里bank是包含三个字段 id name 和age 的数据框 val ic new IgniteContex
  • MATLAB 的堆栈大小是多少?

    MATLAB R2018a 64 位 的默认堆栈大小是多少 堆栈大小似乎比 64 位 C 程序大 我为什么这么问 我问这个问题是因为我正在调用英特尔 MKL拉帕克 dtrtri https software intel com en us
  • 在java中修改复杂的csv文件

    我想编写一个可以打印和修改不规则csv文件的程序 格式如下 1 date 2 organization name 3 student name id number residence student name id number resid
  • 将视觉选择发送到外部程序而不影响缓冲区

    我想要实现的是将视觉选择发送到外部程序而不影响缓冲区的内容 Example 让以下代码块代表当前缓冲区 让 代表视觉选择的结束 This is not a test 1 lt This is not gt a test 2 This is
  • YouTube 播放器.destroy();即使在验证玩家时也会抛出“this.a is null”

    所以我有一个带有两个面板的小应用程序 使用 iframe API 单击一个面板将全屏展开该面板 并显示 播放视频 按钮和一些附加信息 单击左上角的按钮将使 UI 返回到标准状态 关闭视频并将面板缩小到适合 50 50 现在我们有两个视频 我
  • 如何处理带有图像和文本视图的自定义列表视图中的图像视图的点击?

    我想知道我们如何处理带有图像和文本视图的自定义列表视图上的图像视图的点击 我什至使 Imageview 可点击 这是我的代码 自定义适配器 java public class CustomAdapter extends ArrayAdapt