listview分组demo如下

来源:互联网 发布:夏普网络打印机设置 编辑:程序博客网 时间:2024/05/05 17:47
package com;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.content.Context;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;import c.Bean;import com.example.listviewitemclassifydemo.R;public class MainActivity extends Activity {/******************************* field *******************************/private ListView listView;private LayoutInflater inflater;private Context mContext;/******************************* field *******************************/@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);listView = (ListView) findViewById(R.id.list);inflater = getLayoutInflater();mContext = this;// TittleItem label1 = new TittleItem("Label");// list.add(label1);// ContentItem content = new ContentItem();// list.add(content);Bean bean;List<Object> list = new ArrayList<Object>();List<String> listTag = new ArrayList<String>();int flag = 1; for (int i = 0; i < 10; i++) {if (i < 3) {if (flag == 1) {listTag.add("1");list.add("1");flag = 2;}list.add(new Bean("男人" + i, 10));} else {if (flag == 2) {listTag.add("2");list.add("2");flag = -1;}list.add(new Bean("女人" + i, 19));}}MyAdapter adapter = new MyAdapter(list, listTag);listView.setAdapter(adapter);}class MyAdapter extends BaseAdapter {List<Object> list = new ArrayList<Object>();public MyAdapter(List<Object> list, List<String> listTag) {super();this.list = list;this.listTag = listTag;}List<String> listTag = new ArrayList<String>();@Overridepublic int getCount() {return list.size();}@Overridepublic Object getItem(int position) {return list.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {if (listTag.contains(getItem(position))) {convertView = View.inflate(mContext, R.layout.title, null);TextView title = (TextView) convertView.findViewById(R.id.title);title.setText(getItem(position).toString());} else {convertView = View.inflate(mContext, R.layout.one, null);TextView name = (TextView) convertView.findViewById(R.id.name);TextView age = (TextView) convertView.findViewById(R.id.age);try {name.setText(((Bean) getItem(position)).getName());age.setText(((Bean) getItem(position)).getAge()+"");} catch (Exception e) {e.printStackTrace();}}return convertView;}}}

package c;/** * @author : majun * @date :2014年9月3日上午9:22:47 * @version:v1.0+ * @FileName:Bean.java * @ProjectName:ListviewItemClassifyDemo * @PackageName:c * @EnclosingType: * @Description:TODO */public class Bean {private String name;private int age;public Bean(String name, int age) {super();this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <ListView        android:id="@+id/list"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:cacheColorHint="@android:color/transparent"        android:fadingEdge="none" >    </ListView></LinearLayout>
one.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:orientation="horizontal" >    <TextView        android:id="@+id/name"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_gravity="left"        android:background="@android:color/holo_purple"        android:gravity="left"        android:padding="10dp"        android:text="hahah" />    <TextView        android:id="@+id/age"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_gravity="right"        android:background="@android:color/holo_purple"        android:gravity="right"        android:padding="10dp"        android:text="ha" /></LinearLayout>
title.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:orientation="horizontal" >    <TextView        android:id="@+id/title"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:background="@android:color/darker_gray"        android:padding="10dp"        android:text="biaoti" /></LinearLayout>效果图 形如 下图:

0 0