ListView +Girdview 的一个列表

来源:互联网 发布:油漆品牌 知乎 编辑:程序博客网 时间:2024/06/05 03:03

 截图



是这样的一个效果

下面的代码  列子在下面附上 布局文件就不上传了 没啥东西 大家看看引用自己建立一个吧 或者直接下载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() {@Overridepublic 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.csdn.net/detail/u010386438/6858759

0 0
原创粉丝点击