android - 使用 SimpleCursorAdapter 绑定(bind)到 DB 的 ListActivity 中连续单个元素的 OnclickListener 无法正常工作

标签 android listactivity simplecursoradapter

请帮忙。

正如我在标题中所述,我试图让列表适配器的一行中的各个元素根据用户点击的内容启动不同的操作。

它“有点”有效,但需要很长时间才能对用户点击使用react。我做错了什么?

提前致谢

所以我在

中尝试了下面的代码
    @Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);
    // Get the item that was clicked
    Cursor c = (Cursor) this.getListAdapter().getItem(position);

    // c.moveToNext();

    prescription_id = c.getString(0);
    TextView pName = (TextView) v.findViewById(R.id.text2);
    TextView paName = (TextView) v.findViewById(R.id.text3);
    TextView rDateLabel = (TextView) v.findViewById(R.id.textView1);
    TextView rDate = (TextView) v.findViewById(R.id.text4);
    TextView rLeftLabel = (TextView) v.findViewById(R.id.text5);
    TextView rLeft = (TextView) v.findViewById(R.id.text6);
    ImageView callPhone = (ImageView) v.findViewById(R.id.Call_Pharmacy);

    pName.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            goToPDetails();

        }
    });
    pa.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            goToPDetails();

        }
    });
    rDateLabel.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            goToPDetails();

        }
    });
    rDate.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            goToPDetails();

        }
    });
    rLeftLabel.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            goToPDetails();

        }
    });
    rLeft.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            goToPDetails();

        }
    });
    callPhone.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            //Some Code
        }
    });
}

最佳答案

所有这些 onClick 监听器(那些在一个 ListView 元素的单个 subview 上的监听器)可能不应该出现在 onListItemClick 方法中,而应该出现在适配器的 getView 方法中(正确使用 convertView 参数)。

你这样做的方式似乎很不对,如果你在正确的地方正确地实现了各种 onClick 监听器,也许你的 onListItemClick 方法甚至都不需要。

关于android - 使用 SimpleCursorAdapter 绑定(bind)到 DB 的 ListActivity 中连续单个元素的 OnclickListener 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7033858/

相关文章:

android - Eclipse 多次检测到同一设备

android - 为具有不同项目布局的 ListView 创建 ViewHolders

android - 单击更改 ListView 项目的图像

java - 刷新我的光标适配器中的 ListView?

android - 无法让 JQueryMobile CSS/JS 在 PhoneGap 中加载

android - 在 Android 中使用 Build-specific aaptOptions(用于排除特定的 Assets 文件/文件夹)

java - 带有标题和 toast 的 ListActivity 选择了错误的列表项

android - onListItemClick 没有在 ListActivity 上被调用

android - 使用游标适配器实现具有多个选择和过滤器的 ListView

android - 方向从横向变为纵向后,RecyclerView 位于中间而不是顶部