类似QQ好友分组栏

来源:互联网 发布:日语网络教育 编辑:程序博客网 时间:2024/04/30 06:21
package com.example.qq;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import android.app.Activity;import android.app.ListActivity;import android.content.Context;import android.content.Intent;import android.graphics.Color;import android.os.Bundle;import android.text.method.KeyListener;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.TextView;public class MainActivity extends ListActivity {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;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);ListView listView = this.getListView();ArrayAdapter adapter = new MyAdapter(this, -1);items = new ArrayList<HashMap<String, Object>>();  listView.setAdapter(adapter);String[] str = { "1月", "2月", "3月","4月","5月","6月","7月","8月","9月","10月","11月","12月" };int[] intt={31,28,31,30,31,30,31,31,30,31,30,31};int sum=0;for (int i = 0; i < str.length; i++) {HashMap<String, Object> group_map = new HashMap<String, Object>();group_map.put(TYPE, GROUP);group_map.put(DATA, str[i]);items.add(group_map);for (int j = 0; j < intt[i]; j++) {HashMap<String, Object> data_map = new HashMap<String, Object>();data_map.put(TYPE, ITEM);data_map.put(DATA,  j+1+"号");items.add(data_map);}}}private class MyAdapter extends ArrayAdapter {private LayoutInflater inflater = null;public MyAdapter(Context context, int resource) {super(context, resource);inflater = LayoutInflater.from(context);}public int getCount() {return items.size();}@Overridepublic Object getItem(int position) {HashMap<String, Object> map = items.get(position);return map.get(DATA);}// 返回的id可以自己定制。@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("2015年");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) + "");tv.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {}});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;}}}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context="com.example.qq.MainActivity" >    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="@string/hello_world" /></RelativeLayout>


0 0
原创粉丝点击