1 package com.lixu.fenzu;
  2 
  3 import java.util.ArrayList;
  4 import java.util.HashMap;
  5 
  6 import android.app.ListActivity;
  7 import android.content.Context;
  8 import android.graphics.Color;
  9 import android.os.Bundle;
 10 import android.util.Log;
 11 import android.view.LayoutInflater;
 12 
 13 import android.view.View;
 14 import android.view.ViewGroup;
 15 import android.widget.ArrayAdapter;
 16 import android.widget.ListView;
 17 import android.widget.TextView;
 18 
 19 public class MainActivity extends ListActivity {
 20     private static final String TYPE = "type";
 21     private static final String DATE = "date";
 22     private static final int GROUP = -1;
 23     private static final int ITEM = -2;
 24 
 25     private ArrayList<HashMap<String, Object>> item = null;
 26 
 27     @Override
 28     protected void onCreate(Bundle savedInstanceState) {
 29         super.onCreate(savedInstanceState);
 30 
 31         ListView lv = this.getListView();
 32         ArrayAdapter adapter = new MyAdaper(this, 1);
 33 
 34         item = new ArrayList<HashMap<String, Object>>();
 35         
 36 
 37         String[] groups = { "家人", "朋友", "同学", "同事" };
 38         String[] date = { "张三", "李四", "王五", "狗儿" };
 39         for (String str:groups) {  
 40             HashMap<String, Object> group_map = new HashMap<String, Object>();
 41 
 42             group_map.put(TYPE, GROUP);
 43             group_map.put(DATE, str);
 44             item.add(group_map);
 45             for (String n : date) {
 46 
 47                 HashMap<String, Object> date_map = new HashMap<String, Object>();
 48 
 49                 date_map.put(TYPE, ITEM);
 50                 date_map.put(DATE, n);
 51                 item.add(date_map);
 52 
 53             }
 54 
 55         }
 56         lv.setAdapter(adapter);
 57 
 58     }
 59 
 60     public class MyAdaper extends ArrayAdapter {
 61         private LayoutInflater flater = null;
 62 
 63         public MyAdaper(Context context, int resource) {
 64             super(context, resource);
 65             flater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
 66         }
 67 
 68         @Override
 69         public int getCount() {
 70             return item.size();
 71         }
 72 
 73         @Override
 74         public int getItemViewType(int position) {
 75             HashMap<String, Object> map = item.get(position);
 76             return (Integer) map.get(TYPE);
 77         }
 78 
 79         @Override
 80         public int getViewTypeCount() {
 81 
 82             return 2;
 83         }
 84 
 85         @Override
 86         public View getView(int position, View convertView, ViewGroup parent) {
 87             int type = getItemViewType(position);
 88             // 根据不同的view type加载不同的布局文件。
 89             switch (type) {
 90             case GROUP:
 91 
 92                 convertView = flater.inflate(R.layout.activity_main, null);
 93                 TextView tv1 = (TextView) convertView.findViewById(R.id.tv1);
 94                 tv1.setText(item.get(position).get(DATE) + "");
 95                 tv1.setBackgroundColor(Color.RED);
 96                 tv1.setTextSize(20);
 97 
 98                 break;
 99             case ITEM:
100                 convertView = flater.inflate(R.layout.activity_main, null);
101                 TextView tv2 = (TextView) convertView.findViewById(R.id.tv1);
102                 tv2.setText(item.get(position).get(DATE) + "");
103 
104                 break;
105 
106             default:
107                 break;
108             }
109 
110             return convertView;
111         }
112 
113     }
114 }

 运行效果:

posted on 2015-11-16 15:44  0代码狂人0  阅读(223)  评论(0编辑  收藏  举报