ListView +Girdview 的一个列表

 截图



是这样的一个效果

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值