ListView OnItemClickListener 没有响应? [英] ListView OnItemClickListener Not Responding?

查看:30
本文介绍了ListView OnItemClickListener 没有响应?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我到处寻找解决方案,但我不知道如何实现它.我的 OnItemClickListener 在我的 ListView 行上以某种方式被禁用,因为我在行布局中有一个 ImageButton,它接管了焦点.我发现了很多问题,但没有一个能解决我的问题.

I've looked everywhere for a solution to this, but I can't figure out how to implement it. My OnItemClickListener was disabled somehow on my ListView rows, because I have an ImageButton in the row layout, which takes over the focus. There have been numerous questions I've found, but none of them have gotten me anywhere.

我已经检查了这个问题,但我真的不能使它的头部或尾部.我只需要一种方法来使行可点击,以便我可以检测何时按下一行.长按和对焦工作正常.

I've checked this question, but I couldn't really make heads or tails of it. I just need a way to get the rows clickable so that I can detect when a row is pressed. Long press and focus work fine.

推荐答案

向从适配器返回的每个视图添加一个 OnClickListener,而不是 OnItemClickListener.您需要使用 setItemsCanFocus 设置您的列表:

Instead of an OnItemClickListener, add an OnClickListener to each of your views returned from your adapter. You'll need to use setItemsCanFocus setting up your list:

ListView list = (ListView) findViewById(R.id.myList);
list.setAdapter(new DoubleClickAdapter(this));
list.setItemsCanFocus(true);

然后在您的适配器getView中,这将产生一个可点击的行.假定按钮位于膨胀的 xml 中.

and then in your Adapter's getView, this will yield a clickable row. The button is assumed to be in the inflated xml.

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View view = View.inflate(context, R.layout.cell, null);
    view.setClickable(true);
    view.setFocusable(true);
    view.setBackgroundResource(android.R.drawable.menuitem_background);
    view.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            new AlertDialog.Builder(context).setTitle("touched").show();
        }

    });
    return view;
}

这篇关于ListView OnItemClickListener 没有响应?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆