分组 布局 adapter
来源:互联网 发布:840d主轴自动优化 编辑:程序博客网 时间:2024/06/07 06:00
package com.example.listview;import java.util.ArrayList;import java.util.HashMap;import android.app.ListActivity;import android.content.Context;import android.graphics.Color;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ListView;import android.widget.TextView;public class MainActivity extends ListActivity {//item view的类型总数private final int VIEW_TYPE_COUNT = 2;private final String DATA="data";private final String TYPE="type";private final int GROUP=-2;private final int ITEM=-3;private ArrayList<HashMap<String,Object>> items = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);ListView listview = this.getListView();BaseAdapter adapter = new MyBaseAdapter();items = new ArrayList<HashMap<String, Object>>(); listview.setAdapter(adapter);String [] groups={"A","B","C","D","E","F"};int count=0;for(int i=0;i<groups.length;i++){HashMap<String,Object> group_map = new HashMap<String,Object>();group_map.put(TYPE,GROUP);group_map.put(DATA, groups[i]);items.add(group_map);for (int j = 0; j < 5; j++) { HashMap<String, Object> data_map = new HashMap<String, Object>(); data_map.put(TYPE, ITEM); data_map.put(DATA, "数据:" + (count++)); items.add(data_map); } }}private class MyBaseAdapter extends BaseAdapter{private LayoutInflater inflater = null;public MyBaseAdapter(){inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);}@Overridepublic int getCount() {return items.size();}@Overridepublic Object getItem(int position) {HashMap<String, Object> map = items.get(position);return map.get(DATA); }@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {int type = getItemViewType(position);//根据不同的view type加载不同的布局文件 switch(type){case GROUP:convertView = inflater.inflate(android.R.layout.simple_list_item_2,null);TextView tv1 = (TextView) convertView.findViewById(android.R.id.text1);tv1.setText("分组");tv1.setBackgroundColor(Color.RED);TextView tv2 = (TextView) convertView.findViewById(android.R.id.text2); tv2.setText(getItem(position) + ""); tv2.setBackgroundColor(Color.GRAY); break;case ITEM:convertView = inflater.inflate( android.R.layout.simple_list_item_1, null); TextView tv = (TextView) convertView .findViewById(android.R.id.text1); tv.setText(getItem(position) + ""); break; }return convertView;}//解析view type//view type值是我们事先埋入到items数据中的字段值//注意:此处的返回值不要大于getViewTypeCount()的返回值@Overridepublic int getItemViewType(int position) {HashMap<String, Object> map = items.get(position);return (Integer) map.get(TYPE);}// 在本例中共计有2个不同类型的view // android.R.layout.simple_list_item_1 和 // android.R.layout.simple_list_item_1.@Overridepublic int getViewTypeCount() {return VIEW_TYPE_COUNT; }}}
0 0
- 分组 布局 adapter
- Android ListView 分组基础adapter
- Adapter实现多种布局
- adapter加载多种布局
- adapter实现多布局
- Qt ③分组布局
- Android ListView分组布局
- 谈谈QT分组布局
- Qt 分组布局
- ListView多布局Adapter封装
- 多布局的自定义Adapter
- Android ListView分组布局改进
- Android ListView分组布局改进
- 分组报表组件填充布局
- 分组表表组件填充布局
- 分组报表组件填充布局
- 分组报表组件填充布局
- 分组报表组件填充布局
- Android——Fragment介绍及两种基本使用方法
- 用ALAsset获取相册原图
- 在提交svn的遇到如下错误----Eclipse Error validating server certificate for https://devserver02:443: - U Myecl
- iOS开发框架篇—CoreImage
- Webservices笔记
- 分组 布局 adapter
- Eclipse中的.project 和 .classpath文件的具体作用
- 换取本地图片的高和宽
- Matlab矩阵的简单操作
- MyBatis新特性
- 语音sdk使用
- UIViewContentMode各类型效果
- karaf配置自定义featrues
- Oracle 有关SQL性能优化