android中ListView无法点击?

2024-02-08

我使用联系人同步制作了一个应用程序。我列出了以下联系信息,包括照片、姓名和电话号码。我成功地在自定义中列出了所有这些内容ListView,但我无法点击ListView。看起来像是被锁定了,无法点击。

但我对另一项活动做了同样的程序。使用自定义ListView但我可以点击这个视图,它工作得很好。

问题是什么?这是我的示例编码:

    ListView settingsList = (ListView) findViewById(R.id.manage_track_listView);
    ArrayList<ContactList> MySettingsList = new ArrayList<ContactList>();

    ContactList setting1 = new ContactList("contact name 1", "Number 1", null);
    ContactList setting2 = new ContactList("contact name 2", "Number 2", null);
    ContactList setting3 = new ContactList("contact name 3", "Number 3", null);

    MySettingsList.add(setting1);
    MySettingsList.add(setting2);
    MySettingsList.add(setting3);

    ContactList list[] = new ContactList[MySettingsList.size()];

    for(int i=0;i<MySettingsList.size();i++) {

        ContactList mySettings = MySettingsList.get(i);
        list[i] = new ContactList(mySettings.getName(), mySettings.getNumber(), mySettings.getImageIcon());
    }

    ContactListAdapter adapter = new ContactListAdapter(this, R.layout.manage_track_list_custom_view, list);
    settingsList.setAdapter(adapter);
    System.out.println("before listener");
    settingsList.setOnItemClickListener(new OnItemClickListener() {

        @Override


        public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {
            // TODO Auto-generated method stub

            System.out.println("Clicked " + position);
        }
    });
    System.out.println("after listener");

这里 ContactList 是一个类,其中包含联系人姓名、号码和 imageBlob 的 byte[]。如果图像为空,我将默认的 ic_launcher 设置为联系人图像。适配器类是:

public class ContactListAdapter extends ArrayAdapter<ContactList> {

    Context context;
    int layoutResourceId;
    ContactList objects[] = null;

    View row;

    public ContactListAdapter(Context context, int layoutResourceId, ContactList[] objects) {
        super(context, layoutResourceId, objects);
        // TODO Auto-generated constructor stub

        this.context = context;
        this.layoutResourceId = layoutResourceId;
        this.objects = objects; 
        System.out.println(objects[1].getName());
        System.out.println(objects[1].getNumber());
        System.out.println(objects[1].getImageIcon());
    }

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub

        row = convertView;
        final ContactListHolder holder;

        if ( row == null ) {

            LayoutInflater inflater = ((Activity)context).getLayoutInflater();
            row = inflater.inflate(layoutResourceId, parent, false);

            holder = new ContactListHolder();
            holder.image    = (ImageView) row.findViewById(R.id.contactImage);
            holder.name     = (TextView) row.findViewById(R.id.contactName);
            holder.number   = (TextView) row.findViewById(R.id.contactNumber);
            holder.check    = (CheckBox) row.findViewById(R.id.selectedContact);

            row.setTag(holder);

        } else {

            holder = (ContactListHolder)row.getTag();
        }

        ContactList contact = objects[position];
        if(contact.imageIcon != null) {

            Bitmap imgBitmap = BitmapFactory.decodeByteArray(contact.imageIcon, 0, contact.imageIcon.length);
            holder.image.setImageBitmap(imgBitmap);
        } else {

            holder.image.setImageResource(R.drawable.ic_launcher);
        }

        holder.name.setText(contact.name);
        holder.number.setText(contact.number);
        holder.check.setChecked(objects[position].isSelected());    

        return row;

    }

    static class ContactListHolder {

        ImageView image;
        TextView name;
        TextView number;
        CheckBox check;
    }
}

我有 100 多个联系人,因此仅添加了 3 个对象。在此联系人列表中,我成功收到联系人图像、姓名、电话号码。

问题是什么ListView无法点击?我希望你们中的任何一位都能指导我。提前致谢。


谢谢大家。现在只需添加即可得到结果android:focusable="false"在我所有的孩子看来。感谢您的指导。


在嵌套视图中,子视图始终首先获取所有触摸事件。如果您希望父视图(在您的情况下为 listView 行)获取触摸事件,则必须对子事件返回 false 或将它们设置为android:clickable="false"在清单中。

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

android中ListView无法点击? 的相关文章

随机推荐

  • 打印 Windows 窗体

    我继承了一些代码来打印表单的内容 但是在纸上生成的图像似乎有某种阴影 模糊 就好像它试图进行抗锯齿但做得不太好 并且字母在边缘像素化 有谁知道提高最终质量的方法吗 System Drawing Printing PrintDocument
  • Visual Studio 扩展中的 app.config?

    我创建了一个代表 Visual Studio 项目向导 vsix 包 的 Visual Studio 扩展 我正在尝试连接 log4net 但没有成功 我已将问题归结为 app config 未正确加载 我已将其添加到我的 Visual S
  • 棘手的数组初始化

    在 C 不是 C 中 我尝试创建两个包含相同值的字符串表 但以两种不同的方式对值进行排序 而且我不希望字符串在内存中重复 基本上 我想做以下事情 除了根据 gcc 之外 它会失败 因为第二个数组初始化中的 初始化器元素不是常量 有办法解决这
  • 在 WCF/.NET 中返回数据表

    我有一个 WCF 服务 我想从中返回一个数据表 我知道 就返回 DataTable 是否是一个好的实践而言 这通常是一个备受争议的话题 让我们暂时把它放在一边 当我从头开始创建数据表时 如下所示 没有任何问题 该表已创建 填充并返回给客户端
  • 删除工作表(如果存在)并创建一个新工作表

    我想浏览我的 Excel 工作表并找到具有特定名称的工作表 如果找到则删除该工作表 之后 我想在所有具有该名称的现有工作表之后创建一个工作表 我的代码如下 For Each ws In Worksheets If ws Name asdf
  • Scapy生成STP(生成树协议)数据包

    我正在尝试生成STP数据包并使用wireshark捕获它 基本上我所做的是 gt gt gt 从Scapy发送 STP wireshark的结果是 53918 2671 938356000 00 00 00 00 00 00 FC 49 格
  • 启用 NoResize 模式时最小化窗口

    我有一个 WPF 应用程序 其中Window财产ResizeMode设置为NoResize 因此最大化和最小化按钮被隐藏 有没有办法添加最小化按钮 因为我不想允许用户仅调整窗口大小以避免表单上的控件变形 但最小化窗口是一个有用的功能 Set
  • 如何让按钮在div中居中?

    我有一个宽度为 100 的 div 我想在其中放置一个按钮 我该怎么做 div style width 100 height 100 border 1px solid div
  • 隐藏标题页上的幻灯片编号

    我在用 Reveal initialize slideNumber true 是否有可能隐藏标题页上的幻灯片编号 我是这样做的 Reveal addEventListener slidechanged event gt const isFi
  • 标签内的图像
  • 我有一个关于内部浮动元素的问题 li tag 我有以下标记 li li img src concept truck jpg alt 2013 Toyota Tacoma p 2013 Toyota Tacoma p p Price 4500
  • 无法获取 Flask 应用程序中设置的环境变量

    我尝试在 CentOS 中将敏感信息设置为环境变量 并将它们传递给主文件中使用的 Flask 配置文件 即init py 但这没有用 Flask 应用程序在 Apache 下运行 我首先以 root 用户身份编辑 etc environme
  • 使用 LLVM C API 生成对内部函数的调用

    我正在编写一些使用 LLVM C API 的代码 如何使用内在函数 例如llvm cos f64 or llvm sadd with overflow i32 每当我尝试通过生成一个全局来做到这一点LLVMAddGlobal 具有正确的类型
  • 如何使用ExternalTask​​Sensor触发Airflow DAG独立运行

    我构建了两个 DAG dag a dag b 并在 dag b 中创建了一个刺探 dag a 的ExternalTask Sensor 这些 DAG 有两个用例 同时调度dag a和dag b 并使用依赖关系先处理dag a 然后处理dag
  • SwiftUI 2 弹出到根视图,没有场景委托

    我想在用户注销时刷新根视图 但我找不到如何在新的无场景 SwiftUi 2 下执行此操作 Next is 瑞士马克 https stackoverflow com questions 63461933 swiftui how to chan
  • 将纬度和经度转换为十进制值

    我的 GPS 信息以以下形式呈现 北纬 36 57 9 西经 110 4 21 我可以使用Chris Veness 的 javascript 函数 http www movable type co uk scripts latlong ht
  • Golang,goroutines:恐慌:运行时错误:无效的内存地址

    我对 golang 相当陌生 并试图理解主要原理并使用通道编写基于 gouroutines 的代码 在我使用的其他语言中没有这样的工具 我想知道是否会出现诸如恐慌之类的错误 我的代码 package main import fmt impo
  • jQuery getJSON 不适用于已删除的抽搐频道

    我正在尝试制作一个抽搐频道列表 显示谁在线 离线 并显示该人已删除该帐户的消息 问题是 如果人员帐户不再存在 即使请求返回带有几个属性的 JSON 文件 getJSON 方法内部也不会起作用 代码笔 http codepen io Zach
  • 使用 C# 测量 TCP 上的数据传输速率

    我想测量当前的下载速度 我正在通过 TCP 发送巨大的文件 我怎样才能捕获每秒的传输速率 如果我使用 IPv4InterfaceStatistics 或类似方法 我将捕获设备传输速率 而不是捕获文件传输速率 捕获设备传输速率的问题在于 它捕
  • 自连接查询

    考虑下表 mysql gt select from phone numbers number type person id 17182225465 home 1 19172225465 cell 1 12129876543 home 2 1
  • android中ListView无法点击?

    我使用联系人同步制作了一个应用程序 我列出了以下联系信息 包括照片 姓名和电话号码 我成功地在自定义中列出了所有这些内容ListView 但我无法点击ListView 看起来像是被锁定了 无法点击 但我对另一项活动做了同样的程序 使用自定义