ListView OnItemLickListener 没有响应?

2022-09-01 00:16:39

我到处寻找解决方案,但我不知道如何实现它。我的行以某种方式被禁用,因为我有一个行布局,它接管了焦点。我发现了很多问题,但没有一个能让我去任何地方。OnItemClickListenerListViewImageButton

我已经检查了这个问题,但我无法真正弄清楚它的正面或反面。我只需要一种方法来使行可单击,以便我可以检测何时按下行。长按和对焦工作正常。


答案 1

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

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

然后在适配器的 中,这将生成一个可单击的行。假定该按钮位于膨胀的 xml 中。getView

@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;
}

答案 2

设置您的 属性:ImageButton

android:focusable="false"

因为检查 .AbsListView.onTouchEventchild.hasFocusable()


推荐