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没有选中状态,但可以通过设置一些属性和监听器来实现。 1. **设置默认选中效果**: - 在Adapter中,我们可以为每个Item设置一个标识,比如一个布尔值,表示该Item是否被选中。在`getView()`...
2. **实现CheckBox功能**:在GridView的每个单元格内嵌入一个CheckBox或者使用CheckedTextView,通过设置其可见性来控制选中状态。当用户点击图片时,更新 SparseBooleanArray 对应项的状态,并同步更新CheckBox的...
### ASPxGridView(或ASPxTreeList)动态加载数据源的解决方案 在处理Web应用程序中的数据展示时,ASPxGridView和ASPxTreeList是DevExtreme框架中常用的组件,用于高效地展示和操作大量数据。然而,在动态加载数据源...
标题"保持GridView在翻页过程中CheckBoxes选中状态的程序例子源码"提供了一个解决方案,即通过编写特定的代码来跟踪并恢复用户在GridView分页过程中的CheckBox选择。这种技术通常涉及到数据绑定、状态管理以及可能的...
默认情况下,GridView会加载当前页面的数据,其他页面的数据则在内存中缓存,以便快速切换。但这意味着,如果用户在某一页选择了Checkbox,然后翻到下一页,之前的选择状态不会被保留,因为新的页面加载会覆盖旧的...
针对性能进行优化,例如使用异步加载数据、缓存策略等,以减少内存占用和提高响应速度。 以上就是利用`ViewPager`和`GridView`在Android中实现日历功能的详细步骤。这种组合方式不仅能够有效地展示大量数据,还能...
综上所述,"android GridView实现图库预览图,多选模式下右上角打勾"涉及到了Android UI设计、Adapter机制、图片加载库的使用、事件处理以及自定义视图等多方面知识。通过合理的设计和实现,我们可以构建出一个功能...
1. 加载数据:从数据库或其他数据源获取数据,可以使用ADO.NET、Entity Framework等工具。 2. 设置DataSource:将加载的数据赋值给GridControl的DataSource属性。 3. 设置DataMember:如果数据源是数据集或数据表...
在某些情况下,Gallery的效果可能不尽如人意,这时开发者可能会选择使用GridView来模拟实现Gallery的效果。下面将详细解释如何使用GridView实现类似Gallery的功能,以及如何添加点击选中效果。 首先,我们需要理解...
在Page_Load事件中,我们应该确保在不是PostBack的情况下加载数据,以避免每次刷新页面时重新绑定数据: ```csharp protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { // 假设gvData....
在Android开发中,ListView和...在实际应用中,可能还需要考虑更多的细节,比如多选模式、触摸事件的处理、数据的动态加载等。总之,掌握ListView和GridView的嵌套使用,可以极大地提升Android应用的数据展示能力。
4. **获取选中数据**: 当用户完成选择后,我们可以遍历选中状态列表,收集所有选中的条目数据。这通常在一个按钮的点击事件中完成,如“确认”或“删除”按钮。 5. **处理嵌套**: GridView作为外层容器,其每个...
这需要在Adapter中维护一个全局的全选状态变量,当全选按钮被点击时,遍历数据源,将所有项的选中状态设为全选状态。同时,如果用户手动改变了某一项的选择,需要检查当前是否仍有全选,如果有冲突则更新全选按钮的...
默认情况下,`GridView`不支持行选中,但可以自定义事件(如`RowCommand`)或使用`RowStyle`和`AlternatingRowStyle`属性添加CSS类来实现行选中效果。不过,更常见的做法是在模板列中添加复选框或其他选择按钮。 ##...
在实际应用中,你可能还需要处理一些边缘情况,例如在数据加载或界面刷新时保持已选状态。此外,如果你需要在GridView之外的地方获取选中项,可以考虑在Adapter中添加一个回调接口或者使用LiveData等响应式编程工具...
对于选择记录,可能需要考虑禁用多选(默认是允许多选)或设置行的样式来突出选中状态。 总结来说,GridView控件在ASP.NET开发中扮演着重要角色,它提供了强大的数据展示和交互功能。理解并熟练掌握GridView的分页...
首先,GridView通过div进行分页的原理是利用JavaScript和AJAX技术在客户端动态加载和显示数据,而不是每次点击分页按钮时都向服务器发送请求。这种方式可以显著减少服务器的负载,提升页面响应速度,尤其是在用户...
本文将深入探讨GridView的各种使用方法,包括代码分页、保存和恢复CheckBox的状态、排序、与DropDownList和CheckBox结合使用,以及实现一些高级功能如自定义样式和功能增强。 1. **代码分页** GridView支持代码...
在实际项目中,你可能需要进一步优化和扩展这个功能,比如添加异步更新服务器端数据的功能,或者考虑在数据动态加载时保持全选状态的一致性。此外,考虑到兼容性和性能,可以考虑使用jQuery等库,或者利用现代浏览器...
2. **多级嵌套Checkbox的状态管理**:在多层嵌套的情况下,我们需要跟踪每一层的选中状态。当一个父级Checkbox被选中时,其子级Checkbox可能需要全部被选中;反之,父级未选中时,子级状态也可能需要同步。这通常...