activity_main.xml
MainActivity.java
package com.example.grouplistview;
import java.util.ArrayList;
import android.app.Activity;
import android.database.DataSetObserver;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListAdapter;
import android.widget.ListView;
/*
* 分组ListView的测试
*/
public class MainActivity extends Activity {
private ListView listView=null;
// ListView当中的内容
private ArrayList<String> contentList=new ArrayList<String>();
//ListView当中的Tag内容
private ArrayList<String> tagList=new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView=(ListView) super.findViewById(R.id.list_view);
setData();
listView.setAdapter(new MyListAdapter(this,contentList,tagList));
}
public void setData(){
//设置数据内容
contentList.add("A");
tagList.add("A");
for(int i=0;i<4;i++){
contentList.add("阿里巴巴"+i+1);
}
contentList.add("B");
tagList.add("B");
for(int i=0;i<4;i++){
contentList.add("百度"+i+1);
}
contentList.add("C");
tagList.add("C");
for(int i=0;i<4;i++){
contentList.add("吃饭"+i+1);
}
// contentList.add("D");
// tagList.add("D");
//
// for(int i=0;i<4;i++){
// contentList.add("冻死人"+i+1);
// }
}
}
MyListAdapter.java
package com.example.grouplistview;
import java.util.ArrayList;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class MyListAdapter extends BaseAdapter{
private Context context;
private ArrayList<String> contentList;
private ArrayList<String> tagList;
public MyListAdapter(Context context,ArrayList<String> contentList,ArrayList<String> tagList){
this.context=context;
this.contentList=contentList;
this.tagList=tagList;
}
@Override
public int getCount() {
return contentList.size();
}
@Override
public Object getItem(int position) {
return contentList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
//禁止标签页的点击事件
@Override
public boolean isEnabled(int position) {
if(tagList.contains(getItem(position))){
return false;
}
return super.isEnabled(position);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view;
MainViews views;
if(convertView==null){
views=new MainViews();
if(tagList.contains(getItem(position))){
//表示该布局是一个Tag
view=LayoutInflater.from(context).inflate(R.layout.tag_content, null);
views.textView=(TextView) view.findViewById(R.id.tv_tag_name);
views.textView.setText(getItem(position).toString());
}else{
view=LayoutInflater.from(context).inflate(R.layout.content_item, null);
views.imageView=(ImageView) view.findViewById(R.id.iv_logo);
views.imageView.setImageResource(R.drawable.ic_launcher);
views.textView=(TextView) view.findViewById(R.id.tv_con_name);
views.textView.setText(getItem(position).toString());
}
view.setTag(views);
}
else{
view=convertView;
views=(MainViews) view.getTag();
if(!tagList.contains(getItem(position))){
views.imageView=(ImageView) view.findViewById(R.id.iv_logo);
views.imageView.setImageResource(R.drawable.ic_launcher);
views.textView=(TextView) view.findViewById(R.id.tv_con_name);
views.textView.setText(getItem(position).toString());
}
else{
views.textView=(TextView) view.findViewById(R.id.tv_tag_name);
views.textView.setText(getItem(position).toString());
}
}
Log.e("view", R.drawable.ic_launcher+"");
return view;
}
class MainViews{
TextView textView;
ImageView imageView;
}
}
content_item.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="horizontal" >
<!-- 一条内容的布局方式 -->
<ImageView android:id="@+id/iv_logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView android:id="@+id/tv_con_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dip"/>
</LinearLayout>
tag_content.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:background="#cccccc"
android:orientation="vertical" >
<!-- tag的布局方式 -->
<TextView android:id="@+id/tv_tag_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
求大神帮忙解决了,找了一天了也没找到原因