首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何填充GridView中的空单元格并使其不可点击

在GridView中填充空单元格并使其不可点击,可以通过定制GridView的Adapter来实现。以下是一种可行的实现方式:

  1. 创建一个自定义的GridViewAdapter,继承自BaseAdapter。
  2. 在getView()方法中,判断当前位置的数据是否为空,如果为空,则创建一个不可点击的空视图,并设置相关属性。
  3. 在GridView的Item点击事件中,判断当前位置的数据是否为空,如果为空,则不执行相关点击操作。

下面是一个示例代码:

代码语言:txt
复制
public class MyGridViewAdapter extends BaseAdapter {
    private List<String> mDataList;
    private Context mContext;

    public MyGridViewAdapter(List<String> dataList, Context context) {
        mDataList = dataList;
        mContext = context;
    }

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

    @Override
    public Object getItem(int position) {
        return mDataList.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder viewHolder;
        if (convertView == null) {
            convertView = LayoutInflater.from(mContext).inflate(R.layout.gridview_item, parent, false);
            viewHolder = new ViewHolder();
            viewHolder.textView = convertView.findViewById(R.id.textview);
            convertView.setTag(viewHolder);
        } else {
            viewHolder = (ViewHolder) convertView.getTag();
        }

        String data = mDataList.get(position);
        if (data.isEmpty()) {
            // 当数据为空时,创建一个不可点击的空视图
            convertView.setClickable(false);
            convertView.setFocusable(false);
            viewHolder.textView.setText("");
            viewHolder.textView.setBackgroundColor(Color.TRANSPARENT);
        } else {
            // 当数据不为空时,显示数据
            convertView.setClickable(true);
            convertView.setFocusable(true);
            viewHolder.textView.setText(data);
            viewHolder.textView.setBackgroundColor(Color.WHITE);
        }

        return convertView;
    }

    static class ViewHolder {
        TextView textView;
    }
}

使用时,可以在Activity中设置GridView的Adapter为自定义的MyGridViewAdapter,并传入数据源:

代码语言:txt
复制
List<String> dataList = new ArrayList<>();
// 填充数据源,包括空数据和非空数据
dataList.add("数据1");
dataList.add("");
dataList.add("数据3");
// ...
GridView gridView = findViewById(R.id.gridview);
MyGridViewAdapter adapter = new MyGridViewAdapter(dataList, this);
gridView.setAdapter(adapter);
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        String data = dataList.get(position);
        if (!data.isEmpty()) {
            // 执行相关点击操作
            // ...
        }
    }
});

这样,就可以在GridView中填充空单元格并使其不可点击了。请根据实际情况修改代码中的布局文件和相关逻辑。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【Android从零单排系列二十二】《Android视图控件——GridView》

GridView可以按照指定的行数和列数将数据显示在多个单元格中,使得数据呈现出规律的排列方式。 GridView通过Adapter来提供数据,并且可以自定义每个单元格的布局。...用户可以自定义Adapter来适配各种数据源,并为每个单元格设置不同的视图样式和内容。 GridView还支持交互操作,例如点击单元格进行响应事件,滚动显示大量数据等。...中每个单元格的样式。...stretchMode:设置当行中所有单元格不足一行时,如何拉伸填充空白区域。 columnWidth:设置每列的宽度。 horizontalSpacing:设置水平方向上单元格之间的间距。...四 总结 总之,GridView是Android开发中常用的用于展示数据的布局控件,特点是可以将数据按照网格形式展示,并支持自定义布局和交互操作。

55610

“AS3.0高级动画编程”学习:第四章 寻路(AStarA星A*)算法 (下)

问题在哪里:我们先回顾一下AStar.as中用于判断的if语句 //如果是当前节点,或者是不可通过的,则跳过 if (test == node || !...来看看如何修正: 在以node为中心考查四周节点时,如果遇到水平和垂直方向都是障碍物时,既使对角节点是可穿越的普通节点,也不能通过。...如何区分出不同情况的地形呢?...shade:Number = 300 - 70 * node.costMultiplier; return shade << 16 | shade << 8 | shade; } //单元格点击时...可能这样对比还不强烈,把上面测试代码中的GridView2换回GridView,对比看下没有权重因子干扰时的路径 当然,在具体游戏开发过程中,A*算法还要结合其它很多技术(比如加载地图,配合地图设置权重因子

87990
  • Wijmo 更优美的jQuery UI部件集:客户端更改C1GridView数据源

    很多时候,我们在使用 GridView 展示数据时,希望最终用户可以编辑数据并且同步到数据源中。这是一项繁琐的工作。...我们需要自定义模板列,并且在后台手动获取更新值,最后使用 SQL 语句同步到数据库中。  但是,现在我们有了 C1 Wijmo GridView ,这些繁琐的工作都成为历史。...C1GridView 仅仅通过一个属性-AllowClientEditing 便允用户在客户端编辑单元格内容。 需要编辑时,我们可以通过双击单元格使其进入编辑状态即可。...完成编辑后,选择其它单元格去保存编辑值。  这篇文章将叙述在不执行任何 PostBack 的情况下,如何轻而易举的更新数据库。 ...不过,有时 C1GridView 中仅仅有一行数据(例如:执行了过滤操作)。用户编辑这一行,但是我们并没有其他行可以点击,从而无法保存更改。不要着急!

    2.9K90

    c# dev控件 gridcontrol 数据跟随鼠标滚轮滚动也可以编辑

    在绑定书到gridControl后经常发现: 如果你设置了 this.gridView3.OptionsBehavior.Editable = false; 那数据可以跟随滚轮滚动,但如果你要复制某个单元格的数据时会发现不能复制...但如果你设置了 this.gridView3.OptionsBehavior.Editable = true; 那单元格数据是可以复制了,但又不能跟随滚轮滚动了,那问题来了: 能不能即可以让数据跟随滚轮滚动又可以复制呢...我是这样做的: 窗体加载时注册一个滚轮事件: private void OwlbmUseInStyle_Load(object sender, EventArgs e) {...} //滚轮事件设置单元格不可编辑 public void gridView1_MouseWheel(object sender, MouseEventArgs e) {...this.gridView1.OptionsBehavior.Editable = false; } //再添加一个行点击事件,点击数据行时单元格可编辑 private

    1.1K40

    关于Yii2中GridView的用法总结

    A6.列的样式如何控制? 到现在你已经知道了5个使用GridView的技巧,我们继续,在A6中我们尝试改变表格某一列的样式。...A7.关于GridView中footerOptions的使用。 在A6中我们说GridView的列有一个footerOptions属性,那么这个属性是干嘛用的那?...footerRowOptions是GridView的属性,它控制着tfoot的tr标签属性,简单点说,你最后在tfoot上每个单元格看到的效果是footerRowOptions + footerOptions...showHeader 可以控制table的头部是否显示,默认显示。 showOnEmpty 当数据为空的时候,table框架是否存在,默认不存在。...此功能是在yii2.0.14才支持的。 emptyCell 又是一个小细节,如果一个单元格为空,用什么字符填充那?默认是  ,你可以重新指定。

    1.4K20

    GridView隐藏列取值解决方案

    ,则不会进行数据绑定,也就是说无法直接从GridView中取到这个列内的文本。...,网上也有了其解决方案,其中一个如下,其原理是在行创建时设置其css样式为不可见,这样可以避免直接设置列的visible=false带来的数据不绑定问题: void GridView1_RowCreated...就事论事,回到标题,现提供我对这个问题的解决方案,基本思想仍然是用css使得单元格不可见,而不妨碍它的数据绑定,但我的方法却不需要在cs文件中多加一行代码,其思路如下: (1)设置一个css类:  ...好了,看到这里,如果你有所收获,并很高兴的马上赶回去,为你的GridView添加此设置,避免了使用事件来隐藏列,并实现了批量删除的功能。...DataKeyNames = new string [] { "id" }; 这样,当进行数据绑定时,GridView会自动用键值填充DataKeys集合,从而在绑定或者回传后可以通过

    1.5K30

    10个数据清洗小技巧,快速提高你的数据质量

    所以数据清洗成为了数据分析的重要前提,并且占据了整个数据分析工作中80%的时间。 那么如何通过数据清洗来提高数据质量呢?...所以将不规范的数值改为规范这一步不可或缺。 ? 3、删掉多余的空格 原始数据中如果夹杂着大量的空格,可能会在我们筛选数据或统计时带来一定麻烦。如何去掉多余的空格,仅在字符间保留一个空格?...5、填补缺失值 由于人工录入或者数据爬虫等多方面的原因,会出现缺失值的情况,这就需要我们寻找漏网之“数据”,填充空缺值。 如何统计有多少缺失值?...先看ID唯一列有多少行数据,参考excel右下角的计数功能,对比就可以知道其他列缺失了多少数据。 如何定位到所有缺失值? Ctrl+G,选择定位条件,然后选择空值。...(3)视为缺失值 将异常值视为缺失值来处理,采用处理缺失值的方法来处理异常值。 7、拆分单元格 按照以下步骤对合并单元格进行拆分并填充: (1)点击取消合并单元格 ?

    2K31

    Android 关于GridView那些事

    ) 11.android:fadingEdge=”none” //GridView衰落(褪去)边缘颜色为空,缺省值是vertical。...15.android:drawSelectorOnTop=”false” //点击某条记录不放,颜色会在记录的后面成为背景色,内容的文字可见(缺省为false) 至于GridView的用法就不多说了...一.GridView按钮图片点击效果 二.GridView九宫格分割线效果实现 一.GridView按钮图片点击效果 我们先来看看GridView按钮图片的点击效果吧,不是说每一个item的点击背景颜色的改变...,那个很简单实现,自定义一个selector就可以实现,接下来小编要说的是每一个item上的imageview的点击效果…....android:layout_centerHorizontal="true"> 2.然后我们在自定义adapter中定义一个改变按钮图片的颜色方法

    87810

    Android 滑动效果基础篇(四)—— Gallery + GridView

    本示例通过GridView和Gallery两个控件,模仿实现一个完整的仿Gallery图像集的图片浏览效果。...效果图如下: 1、GridView 首先,自定义一个GridImageAdapter图片适配器,用于填充GridView控件的图片 public class GridImageAdapter extends...(this); gridView.setAdapter(gridImageAdapter); gridView.setOnItemClickListener(listener); // 设置点击监听事件...最后,设置GridView控件的点击监听事件 AdapterView.OnItemClickListener listener = new AdapterView.OnItemClickListener...的图片显示、监听事件后,现在点击图片,会启动一个Activity来显示当前点击的图片,此时显示图片的控件便是Gallery 首先,同GridView一样,自定义一个ImageAdapter图片适配器,用来填充

    77230

    DevExpress数据绑定呈现

    1、新建一个WinForm窗体 2、将GridControl控件拖入窗体中,选择在父容器中停靠 上面的数据先不用管,这是我设置之后的 3、点击Run Designer 数据库这里为了方便演示,用的...SQL Server 由于我数据库中的表有8列数据,这里添加8列,并设置列名和绑定的数据名称: 查看数据库表结构:emp 添加8列数据 居中显示 为每一列填写数据库中对应的字段...this.gridControl1.DataSource = GetDataTable(); } /// /// 从数据库里获取数据之后呈现到列表里得单元格时候所触发的事件...{ string strValue = e.Value.ToString(); if (strValue == "")//数据库中补贴为空时...e.Info.DisplayText = (e.RowHandle + 1).ToString(); } } } } 运行结果: 这里我把补贴那一列为空的值处理了下

    1.6K30

    Flutte部件目录-Material Components 顶

    应用程序结构和导航 Scaffold Appbar 上面两个在基本部件中已经讲过。 BottomNavigationBar ? 底部导航栏可轻松浏览并在单次点击之间在顶层视图之间切换。...如果选择的项目非空,则使用fixedColor呈现所选项目,否则将使用主题的ThemeData.primaryColor。...final onTap → ValueChanged 点击条目时调用的回调. [...]...FlatButton 平面按钮是在材料组件部件上打印的部分,通过填充颜色对触摸作出反应。 ? IconButton 图标按钮是一个打印在材质小部件上的图片,通过填充颜色(墨水)对触摸作出反应。 ?...GridView 网格列表由以垂直和水平布局排列的单元格的重复模式组成。 GridView小部件实现了这个组件。 ?

    9.5K40

    Spread for Windows Forms快速入门(5)---常用的单元格类型(下)

    属性 描述 AcceptsArrowKeys 设置组合框控件如何处理方向键。 AutoSearch 设置组合框中如何根据输入的一个关键字符来搜索列表的项目。...下面的代码示例创建了一个组合框单元格,列出了1到6月的英文名,并允许用户输入其他值: FarPoint.Win.Spread.CellType.ComboBoxCellType cmbocell = new...HotkeyPrefix 设置ampersand符号是否显示以及如何在文本中显示下划线快捷键。 TextAlign 设置单元格中的文本如何根据复选框图形进行对齐。...自定义图片 在每个状态中,你也可以对每个复选框的状态设置自定义的图片(使其看上去更像一个按钮)。你可以根据单元格有焦点(普通)或者没有焦点(不可用),或者是否被点击(按下)来决定复选框的外观。...下面的示例设置了单元格的大小(通过设置列宽和行高),以便于图片适应它,定义图片的位置使其成为超链接按钮, 以及指定目标的URL。

    4.4K60

    7道题,测测你的职场技能

    【题目2】使用定位条件功能进行批量填充 如何使得左边的表变成右边的表呢?也就是说,如何使得多个不连续的空白单元格同时输入数据? 有人说,我输入其中一个单元格,然后复制到其他空白单元格不就可以了吗。...这是一个笨拙的方法,在实际工作中,要处理的工作表并不可能像案例演示这样只有几行几列,而是有几百几千甚至几万行,而其中的多个不连续空白单元格更是毫无规律可言,不可能一个一个单元格地去填写。...单击左表任意一单元格,Ctrl+A,全选整个单元格区域;然后,按快捷键F5,弹出【定位】对话框; 点击左下角的“定位条件”按钮,在弹出的【定位条件】窗格中,可以对自己要进行定位的条件进行选择。...如本次案例中,我们是要定位出空单元格,也就是“空值”,因此选择“空值”作为定位的条件。 “确定”之后,如下图,就批量选中了表里不连续的空单元格。...首先,在姓名列的左侧增加一列“辅助列”,输入1,然后填充序列,如案例中填充到5。

    3.6K11

    A021-列表容器之GridView

    概述 GridView是Android的另一个列表容器,用法也跟ListView类似,它的布局是一个网格,一行可以有多个项,并且整个视图可以滚动,我们常见的应用有手机中的图库、launcher里面的应用列表...上面的运行结果就是GridView的典型效果,每个item是一张固定大小的图片,这里让它自适应屏幕来填充完整个屏幕的宽度。...(至少滚动4页才会显示) 11.android:fadingEdge=”none” //GridView衰落(褪去)边缘颜色为空,缺省值是vertical。...15.android:drawSelectorOnTop=”false” //点击某条记录不放,颜色会在记录的后面成为背景色,内容的文字可见(缺省为false) 子项 layout/layout_grid_item.xml...最后 GridView的用法与ListView类似,都需要设置Adapter来填充数据,除了填充数据之外,我们可能还需要添加每一项的点击事件,这时需要设置它的监听事件,与ListView设置监听事件一样

    76930

    GridView删除事件

    首先:转摘一段GridView删除的文章 RowDeleting和RowDeleted事件 RowDeleting发生在删除数据之前,RowDeleted发生在删除数据之后。...RowDeleting事件,可以在真正删除前再次确认是否删除,可以通过设置GridViewDeleteEventArgs.Cancel=True来取消删除;也可以用于判断当前数据库记录数,如果只剩一条记录且数据库不能为空则提示并取消删除操作...,并取得当前行的GridViewRow对象 int index=e.RowIndex ; GridViewRow gvr=GridView1.Rows[index];...//取得当前行第二个单元格中的文字 str1 = gvr.Cells[1].Text; //进行提示 Message.Text =”您将删除一个用户,其姓名为”+str1...中添加了模板列并在其中添加了按钮,只要按钮的CommandName=”Delete” 则GridView控件自动触发 GridView1_RowDeleting 事件,因此你必须添加后台代码来实现。

    1.2K20

    gridview属性_GridView

    MS默认的GridView生成HTML代码的方式本身就没有去兼容各种浏览器,只是特别照顾了自己的IE,其实MS已经给出了解决办法,那就是自己定义控件如何生成HTML代码,CSS控件适配器工具包新版发布...介绍如何配置自己的浏览器定义文件。...如何设置GridView让它在IE和FF下都能正常显示呢?下面会进行说明。...,这才是真的 用CSS解决asp.net中Gridview边框样式问题 html标签中的bordercolor属性指定表格边框颜色之后,无论是表格的四个边框还是表格内部的单元格 边框颜色便都设置好了.但是在...中设置的bordercolor属性是css中的属性,其结果就是gridview的四个边框的颜色变了, 但是内部单元格的颜色却是灰色,而不是你指定的颜色.

    1.5K20
    领券