gpt4 book ai didi

java - Android GridView setOnItemLongClickListener 在设置项目子部件的可见性后不起作用

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

这是我的代码:

clientGridView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
gridClientChooseMode = !gridClientChooseMode;
clientAdapter.notifyDataSetChanged();
return false;
}
};)

这是 gridview 的适配器:

 class ClientListAdapter extends ArrayAdapter<ClientData> {
public ClientListAdapter(Context context, List<ClientData> list) {
super(context, R.layout.view_item, list);
}


@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if (gridClientChooseMode) {
checkBox.setVisibility(View.VISIBLE);
}else{
checkBox.setVisibility(View.GONE);
}
}
}

当 gridClientChooseMode=true 时(当长按 gridview 的项目时),checkBox 会将其可见性更改为 VISIBLE。但之后我无法关闭该复选框,因为 OnItemLongClickListener 不再工作,我的意思是它仅在第一次。非常感谢任何帮助。提前致谢。

最佳答案

@Elltz 关于复选框窃取焦点的说法是正确的。在网格项的布局 Root View 中,您需要以下内容来防止复选框获得焦点:

android:descendantFocusability="blocksDescendants"

关于java - Android GridView setOnItemLongClickListener 在设置项目子部件的可见性后不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27527132/

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