`
sunting_bcwl
  • 浏览: 96406 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

不用配置文件,完全使用代码手工创建ListView

阅读更多
ListView的时候通常会使用SimpleAdapter创建适配器,但是这个适配器依赖资源配置文件,一旦我们的工程不允许使用资源文件而必须用Java代码手工创建ListView的时候,就很难办了。

其实我们可以看下SimpleAdapter的源代码,其中只是用LayoutInflater将传入的资源文件id解析成了View,然后做了一系列的工作将相应的View Item和数据集绑定,我们只需要参照SimpleAdapter实现一个我们自己的Adapter即可,直接使用我们手工创建的ItemView类来构造Item.

几个要点:
1.自定义类实现ListView的Item的布局(继承自View或其合适的子类);
2.自定义类实现Adapter的功能,将Item和给定数据集绑定(继承自BaseAdapter,并重写一些方法,最重要的方法为getView(),一个参考实现:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v;

if (convertView == null) {
// We create our own View Item at here.
v = new FriendListViewItem(mContext);
} else {
v = convertView;
}

bindView(v, position);

return v;
}

private void bindView(View view, int position) {
final Map<String, String> dataSet = mData.get(position);
if (dataSet == null) {
return;
}

FriendListViewItem item = (view instanceof FriendListViewItem) ? (FriendListViewItem) view
: null;

if (item == null) {
return;
}

item.setValue(dataSet);
}

完整Demo可参考附件工程,很简单
分享到:
评论

相关推荐

    ASP.NET 控件的使用

    1.3.3 使用代码隐藏页面 24 1.3.4 处理页面事件 27 1.3.5 使用Page.IsPostBack属性 29 1.3.6 调试和跟踪ASP.NET页面 30 1.3.7 跟踪页面执行 33 1.4 安装ASP.NET Framework 35 1.5 小结 37 第2章 使用标准控件 38 ...

    appBase代码生成器

    通常,为每个新功能创建这些组件需要大量手工编写和调试代码,而appBase代码生成器则通过自动化这一过程,显著提升了开发者的生产力。 **使用方法**: 1. **打包为jar**:首先,你需要将项目的源代码打包成一个可...

    SOUI界面库电子教程

    手工创建项目需要用户自行配置项目环境并准备必要的项目资源。而通过向导创建项目则可以简化这一过程,用户只需遵循向导的指示,便能快速生成一个基础的SOUI项目。SOUIEditor是一个可视化的编辑工具,可用于生成...

    WinForms疑难解答.doc

    典型的WinForms项目通常包括源代码文件、资源文件、配置文件等。 **56. 复制资源后,提示该资源在Resource参数中指定了多次** 如果在项目的资源文件中出现了重复的资源名称,将会导致此错误。需要检查资源文件中的...

Global site tag (gtag.js) - Google Analytics