首页
学习
活动
专区
工具
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开发中常用用于展示数据布局控件,特点是可以将数据按照网格形式展示,支持自定义布局和交互操作。

46510

“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*算法还要结合其它很多技术(比如加载地图,配合地图设置权重因子

86390
  • 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

    1K40

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

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

    1.9K30

    关于Yii2GridView用法总结

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

    1.3K20

    GridView隐藏列取值解决方案

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

    1.5K30

    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图片适配器,用来填充

    74830

    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定义一个改变按钮图片颜色方法

    86010

    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设置监听事件一样

    76230

    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

    用ASP.NET做一个简单数据流动展示

    需求:连接数据库,在网页上显示一行数据,总共十列,每两秒刷新一次,刷新时数据往前流动(后一个单元格覆盖前一个单元格,最后一个单元格生成一个随机数) 新建项目: ? 删除: ? 重建: ? ?...更新好了之后点击刷新: ? 刷新后: ? 右键randomT,在菜单里选择显示表数据,进入如下窗口: 手动键入第一行数据,再点击第二行任一格,完成第一行数据添加: ? 右键mydb.mdf: ?...点击属性,查看复制连接字符串: ? 到web.config中使用: ? 改成相对路径: ?...fill到myds GridView1.DataSource = myds; GridView1.DataBind(); myds.Dispose();....DataSource = myds; GridView1.DataBind(); myds.Dispose(); myda.Dispose();

    60220
    领券