截图
是这样的一个效果
下面的代码 列子在下面附上 布局文件就不上传了 没啥东西 大家看看引用自己建立一个吧 或者直接下载DEMO
package com.example.groplistview;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.AdapterViewFlipper;
import android.widget.ArrayAdapter;
import android.widget.GridView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
private GroupListAdapter adapter = null;
private ListView listView = null;
private List<Object> list = new ArrayList<Object>();
private List<String> listTag = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setData();
adapter = new GroupListAdapter(this, list, listTag);
listView = (ListView)findViewById(R.id.group_list);
listView.setAdapter(adapter);
}
/*************************************模拟数据*******************************************************/
public void setData(){
list.add("A");
listTag.add("A");
list.add(initdateA());
list.add("B");
listTag.add("B");
list.add(initdateB());
list.add("C");
listTag.add("C");
list.add(initdateC());
}
public static ArrayList<HashMap<String, Object>> initdateA(){
ArrayList<HashMap<String, Object>> lstImageItem = new ArrayList<HashMap<String, Object>>();
for(int i=0;i<4;i++)
{
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("ItemImage", R.drawable.ic_launcher);//添加图像资源的ID
map.put("ItemText", "AO."+String.valueOf(i));//按序号做ItemText
lstImageItem.add(map);
}
return lstImageItem;
}
public static ArrayList<HashMap<String, Object>> initdateB(){
ArrayList<HashMap<String, Object>> lstImageItem = new ArrayList<HashMap<String, Object>>();
for(int i=0;i<4;i++)
{
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("ItemImage", R.drawable.ic_launcher);//添加图像资源的ID
map.put("ItemText", "B."+String.valueOf(i));//按序号做ItemText
lstImageItem.add(map);
}
return lstImageItem;
}
public static ArrayList<HashMap<String, Object>> initdateC(){
ArrayList<HashMap<String, Object>> lstImageItem = new ArrayList<HashMap<String, Object>>();
for(int i=0;i<4;i++)
{
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("ItemImage", R.drawable.ic_launcher);//添加图像资源的ID
map.put("ItemText", "c."+String.valueOf(i));//按序号做ItemText
lstImageItem.add(map);
}
return lstImageItem;
}
/****************************************模拟数据 结束*************************************************************/
/******************************** 适配器 **************************************************************/
private static class GroupListAdapter extends ArrayAdapter<Object>{
private List<String> listTag = null;
private GridView gridView;
public GroupListAdapter(Context context, List<Object> objects, List<String> tags) {
super(context, 0, objects);
this.listTag = tags;
}
//取消LISTVIEW的点击事件 点了没反应
@Override
public boolean isEnabled(int position) {
if(listTag.contains(getItem(position))){
return false;
}
return super.isEnabled(position);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if(listTag.contains(getItem(position))){
view = LayoutInflater.from(getContext()).inflate(R.layout.group_list_item_tag, null);
TextView textView = (TextView) view.findViewById(R.id.group_list_item_text);
textView.setText(getItem(position).toString());//tag
}else{
view = LayoutInflater.from(getContext()).inflate(R.layout.group_list_gd_item, null);//内容布局
gridView = (GridView) view.findViewById(R.id.gridView1);
//gridView 适配器 这里只是个简单的适配下
SimpleAdapter saImageItems = new SimpleAdapter(getContext(),
(ArrayList<HashMap<String, Object>>)getItem(position),
R.layout.night_item,
new String[] {"ItemImage","ItemText"},
new int[] {R.id.ItemImage,R.id.ItemText});
gridView.setAdapter(saImageItems);
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
Toast.makeText(getContext(), getName(arg0.getAdapter().getItem(arg2)), 100).show();
}
});
}
return view;
}
public static String getName(Object obj ){
HashMap<String, Object> map =( HashMap<String, Object> )obj;
return map.get("ItemText").toString();
}
}
}
DEMO下载地址 http://download.youkuaiyun.com/detail/u010386438/6858759