`

GridView动态加载数据情况下,选中状态的实现

 
阅读更多

GridView使用AdapterView动态加载数据情况下,无论是在onCreate、Onstart、OnResume方法中调用 getChildCount()均为0,这说明数据并没有在Activity最初启动后立即加载为GridView的子View,那如果要把 GridView实现为Tab风格的菜单,是必须要调用它的状态选中的,如果在Activity中调用的话就会抛 nullpointerexception了,那要怎么操作呢?

	/**
	 * 构造菜单Adapter
	 * @param menuNameArray 名称
	 * @param imageResourceArray 图片
	 * @return FootBarAdapter
	 */
	private FootBarAdapter getMenuAdapter(String[] menuNameArray,
			int[] imageResourceArray) {
		ArrayList<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>();
		for (int i = 0; i < menuNameArray.length; i++) {
			HashMap<String, Object> map = new HashMap<String, Object>();
			map.put("itemImage", imageResourceArray[i]);
			map.put("itemText", menuNameArray[i]);
			data.add(map);
		}
		FootBarAdapter footbarAdapter = new FootBarAdapter(this, data,
				R.layout.item_menu, new String[] { "itemImage", "itemText" },
				new int[] { R.id.item_image, R.id.item_text });
		return footbarAdapter;
	}
	
	public class FootBarAdapter extends SimpleAdapter {
		public FootBarAdapter(Context context,
				List<? extends Map<String, ?>> data, int resource,
				String[] from, int[] to) {
			super(context, data, resource, from, to);
		}
		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			View v =  super.getView(position, convertView, parent);
			if (position == TOOLBAR_ITEM_PAGEHOME) {
				v.setBackgroundResource(R.drawable.bg_toolbar_item_pressed);
			}
			return v;
		}
	}

 我们继承了SimplerAdapter,然后Override getView方法,在里边进行选中状态的判断和置背景色为选中色。

 

摘自:http://blog.csdn.net/xjanker2/article/details/6267515

分享到:
评论

相关推荐

    GridView设置选中状态

    默认情况下,GridView没有选中状态,但可以通过设置一些属性和监听器来实现。 1. **设置默认选中效果**: - 在Adapter中,我们可以为每个Item设置一个标识,比如一个布尔值,表示该Item是否被选中。在`getView()`...

    GridView实现多张图片被选中的效果

    2. **实现CheckBox功能**:在GridView的每个单元格内嵌入一个CheckBox或者使用CheckedTextView,通过设置其可见性来控制选中状态。当用户点击图片时,更新 SparseBooleanArray 对应项的状态,并同步更新CheckBox的...

    ASPxGridView(或ASPxTreeList)动态加载数据源的问题

    ### ASPxGridView(或ASPxTreeList)动态加载数据源的解决方案 在处理Web应用程序中的数据展示时,ASPxGridView和ASPxTreeList是DevExtreme框架中常用的组件,用于高效地展示和操作大量数据。然而,在动态加载数据源...

    保持GridView在翻页过程中CheckBoxes选中状态的程序例子源码

    标题"保持GridView在翻页过程中CheckBoxes选中状态的程序例子源码"提供了一个解决方案,即通过编写特定的代码来跟踪并恢复用户在GridView分页过程中的CheckBox选择。这种技术通常涉及到数据绑定、状态管理以及可能的...

    gridview 分页保存每页的Checkbox选中的值

    默认情况下,GridView会加载当前页面的数据,其他页面的数据则在内存中缓存,以便快速切换。但这意味着,如果用户在某一页选择了Checkbox,然后翻到下一页,之前的选择状态不会被保留,因为新的页面加载会覆盖旧的...

    ViewPager中加载GridView实现日历

    针对性能进行优化,例如使用异步加载数据、缓存策略等,以减少内存占用和提高响应速度。 以上就是利用`ViewPager`和`GridView`在Android中实现日历功能的详细步骤。这种组合方式不仅能够有效地展示大量数据,还能...

    android GridView实现图库预览图,多选模式下右上角打勾

    综上所述,"android GridView实现图库预览图,多选模式下右上角打勾"涉及到了Android UI设计、Adapter机制、图片加载库的使用、事件处理以及自定义视图等多方面知识。通过合理的设计和实现,我们可以构建出一个功能...

    DevExpress中GridControl的属性设置及动态绑定数据和全选取消全选

    1. 加载数据:从数据库或其他数据源获取数据,可以使用ADO.NET、Entity Framework等工具。 2. 设置DataSource:将加载的数据赋值给GridControl的DataSource属性。 3. 设置DataMember:如果数据源是数据集或数据表...

    GridView实现Gallery效果

    在某些情况下,Gallery的效果可能不尽如人意,这时开发者可能会选择使用GridView来模拟实现Gallery的效果。下面将详细解释如何使用GridView实现类似Gallery的功能,以及如何添加点击选中效果。 首先,我们需要理解...

    在GRIDVIEW 控件中某一列显示下拉列表,并且绑定数据库的另外一张表

    在Page_Load事件中,我们应该确保在不是PostBack的情况下加载数据,以避免每次刷新页面时重新绑定数据: ```csharp protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { // 假设gvData....

    ListView嵌套GridView 并实现行列选择

    在Android开发中,ListView和...在实际应用中,可能还需要考虑更多的细节,比如多选模式、触摸事件的处理、数据的动态加载等。总之,掌握ListView和GridView的嵌套使用,可以极大地提升Android应用的数据展示能力。

    android gridview嵌套RecyclerView实现多选功能

    4. **获取选中数据**: 当用户完成选择后,我们可以遍历选中状态列表,收集所有选中的条目数据。这通常在一个按钮的点击事件中完成,如“确认”或“删除”按钮。 5. **处理嵌套**: GridView作为外层容器,其每个...

    GridView 单选和全选功能以及全选操作和取消全选

    这需要在Adapter中维护一个全局的全选状态变量,当全选按钮被点击时,遍历数据源,将所有项的选中状态设为全选状态。同时,如果用户手动改变了某一项的选择,需要检查当前是否仍有全选,如果有冲突则更新全选按钮的...

    GridView选中,编辑,取消,删除

    默认情况下,`GridView`不支持行选中,但可以自定义事件(如`RowCommand`)或使用`RowStyle`和`AlternatingRowStyle`属性添加CSS类来实现行选中效果。不过,更常见的做法是在模板列中添加复选框或其他选择按钮。 ##...

    利用GridView实现单选功能

    在实际应用中,你可能还需要处理一些边缘情况,例如在数据加载或界面刷新时保持已选状态。此外,如果你需要在GridView之外的地方获取选中项,可以考虑在Adapter中添加一个回调接口或者使用LiveData等响应式编程工具...

    GridView分页和选择某条记录

    对于选择记录,可能需要考虑禁用多选(默认是允许多选)或设置行的样式来突出选中状态。 总结来说,GridView控件在ASP.NET开发中扮演着重要角色,它提供了强大的数据展示和交互功能。理解并熟练掌握GridView的分页...

    GridView使用div分页,checkbox全选

    首先,GridView通过div进行分页的原理是利用JavaScript和AJAX技术在客户端动态加载和显示数据,而不是每次点击分页按钮时都向服务器发送请求。这种方式可以显著减少服务器的负载,提升页面响应速度,尤其是在用户...

    GridView使用全集(主要是方法实现讲解)

    本文将深入探讨GridView的各种使用方法,包括代码分页、保存和恢复CheckBox的状态、排序、与DropDownList和CheckBox结合使用,以及实现一些高级功能如自定义样式和功能增强。 1. **代码分页** GridView支持代码...

    gridview全选(js实现)

    在实际项目中,你可能需要进一步优化和扩展这个功能,比如添加异步更新服务器端数据的功能,或者考虑在数据动态加载时保持全选状态的一致性。此外,考虑到兼容性和性能,可以考虑使用jQuery等库,或者利用现代浏览器...

    两层嵌套的checkbox记录选中状态

    2. **多级嵌套Checkbox的状态管理**:在多层嵌套的情况下,我们需要跟踪每一层的选中状态。当一个父级Checkbox被选中时,其子级Checkbox可能需要全部被选中;反之,父级未选中时,子级状态也可能需要同步。这通常...

Global site tag (gtag.js) - Google Analytics