gpt4 book ai didi

Android:具有可点击网格项和嵌套 View (按钮、复选框)的 GridView

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:44:08 24 4
gpt4 key购买 nike

基本上,我想实现一个 GridView,其中的项目本身是可点击的,但在 GridView 中是可点击的 Button复选框es.

这是一个示例布局:

Gridview
-----------------------------------------
|[ImageView] |[ImageView] |
|[TextView] |[TextView] |
|[Button][Checkbox] |[Button][Checkbox] |
-----------------------------------------
|[ImageView] |[ImageView] |
|[TextView] |[TextView] |
|[Button][Checkbox] |[Button][Checkbox] |
-----------------------------------------

基本上,我想要做的是,当用户单击 CheckBox 时,现在可以从 GridView 中选择多个项目。当用户单击 Button 时,将显示一个 Popup。当用户单击其他任何地方时,将启动一个新的 Activity。这样做的重点不是长按以显示上下文菜单,我想要一个按钮来代替它。

关于如何处理这种情况有什么建议吗?在我当前的设置中,如果我在适配器的 GetView() 方法中添加 Button,则只有 Button 是可点击的。整个 GridView 项目不可点击。当我删除 Button 时,GridView 项目再次可点击。似乎只有整个 GridView 项或 Button 是可点击的(响应 OnClickListener()。有没有办法让它们都可点击?

最佳答案

这篇文章很旧,但仅供引用/googlers,我有以下解决方案:

你只需要在 imageAdapter 的 getView 中编写按钮、复选框的所有事件。然后在 gridview 标签下的 layout.xml 文件中添加以下行:

android:clickable="true"
android:descendantFocusability="beforeDescendants"

并将这些行添加到您的按钮和复选框:

android:focusable="false"
android:focusableInTouchMode="false"

如果您希望在单击/触摸 gridview 项目的任何其他区域时启动其他 Activity ,则需要使用(标准代码)/(您自己的匹配实现):

GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(this));

gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Toast.makeText(HelloGridView.this, "" + position, Toast.LENGTH_SHORT).show();
}

干杯, });

关于Android:具有可点击网格项和嵌套 View (按钮、复选框)的 GridView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7386340/

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