gpt4 book ai didi

java - 自定义列表数组适配器不可点击

转载 作者:行者123 更新时间:2023-12-02 06:47:05 25 4
gpt4 key购买 nike

当我使用自定义列表数组适配器进行 ListView 时,数据显示在列表上,但不可单击。我已经在 ListView 项单击上设置了监听器,但它不起作用。

此外,我找到了另一种解决方案,可以使行可单击并在线性布局 ListView 项布局上设置背景可绘制,但使用此解决方案是一个坏技巧。

还有其他解决办法吗?

谁能告诉我为什么会发生这种情况?在 ListView 中,哪些默认功能不适用于自定义阵列适配器

这是我的代码:

public class Model {
String name;
String id;
String price;
}

mArrayList = new ArrayList<Model>();
// mArrayList has some data in it

mListiView.setsetAdapter(new myCoustomAdapter(mContext, mArrayList));
mListiView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getBaseContext(), ""+position, Toast.LENGTH_LONG).show();
}
});

public class myCoustomAdapter extends ArrayAdapter<Model> {
ArrayList<Model> mList;

public myCoustomAdapter(Context context, ArrayList<Model> list) {
super(context, R.layout.item);
this.mList=list;
}

@Override
public int getCount() {
return this.mList.size();
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
// layout data here
return view;
}
}

点击项目时没有任何反应。

最佳答案

这里您必须注意的第一件事是,只要 ListView 元素中存在可单击元素(例如 Button 或 ImageButton),它们就会控制单击事件。因此您的 ListView 将没有机会接受点击事件。

您只需将 ListView 中的 Button 或 ImageButton 的 focusable 属性设置为 false。但它们仍然可以正常工作,并且您的 ListView 的 onListItemClick 也可以工作。

试试这个,

    <Button  android:id="@+id/textsize_increaser"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/back_button"
android:focusable="false"
android:text=" A + "/>

这里我添加了这个 android:focusable="false"并且它工作正常。尝试一下。

这里是引用链接 Click is not working on the Listitem Listview android

关于java - 自定义列表数组适配器不可点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18533411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com