我无法在Android中单击ListView?

我无法在Android中单击ListView?,第1张

概述我使用联系人同步创建了一个应用.我列出了以下联系信息,包括照片,姓名和号码.我成功地在自定义ListView中列出了所有这些东西,但我无法单击ListView.它看起来像锁定,无法点击它. 但我对另一项活动做了同样的程序.使用自定义ListView,但我可以单击此视图,它工作正常. 问题是什么?这是我的示例编码: ListView settingsList = (ListView) findVie 我使用联系人同步创建了一个应用.我列出了以下联系信息,包括照片,姓名和号码.我成功地在自定义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的联系人姓名,号码和字节[].如果图像为空,我将默认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,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”. 总结

以上是内存溢出为你收集整理的我无法在Android中单击ListView?全部内容,希望文章能够帮你解决我无法在Android中单击ListView?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1137339.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存