免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4011 | 回复: 1
打印 上一主题 下一主题

Android GridView,Gallery动态更新数据 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-09 17:05 |只看该作者 |倒序浏览
Android GridView,Gallery动态更新数据












主类代码
  1. package com.android.wei.zidingyi.adapter;   
  2.   
  3. import android.app.Activity;   
  4.   
  5. import android.os.Bundle;   
  6. import android.view.Window;   
  7. import android.view.WindowManager;   
  8. import android.widget.Gallery;   
  9. import android.widget.GridView;   
  10.   
  11. import java.util.*;   
  12.   
  13.   
  14. public class MyActivity extends Activity {   
  15.          
  16.         private Gallery gallery;   
  17.         private GridView gridView;   
  18.         private ImageAdapter listViewAdapter;   
  19.         public static  ImageAdapterView imageAdapterView;   
  20.         private List<Map<String,Object>> listItems;   
  21.         private Integer[] imgeIDs = {   
  22.             R.drawable.niao,R.drawable.niao,R.drawable.rui,R.drawable.rui,   
  23.             R.drawable.ning,R.drawable.ning   
  24.         };   
  25.         private String[] goodsNames={   
  26.             "土豆丝","土豆块","土豆泥","红烧土豆",   
  27.             "麻辣土豆","清蒸土豆"  
  28.         };   
  29.         private String[] goodsDetails={   
  30.             "土豆丝:便宜又好吃",    "土豆丝:便宜又好吃",    "土豆丝:便宜又好吃",      
  31.             "土豆丝:便宜又好吃",    "土豆丝:便宜又好吃",    "土豆丝:便宜又好吃",   
  32.         };   
  33.         private int[] money={   
  34.             2,3,3,10,8,13      
  35.         };   
  36.          
  37.         public void onCreate(Bundle savedInstanceState) {   
  38.             super.onCreate(savedInstanceState);   
  39.             /**全屏显示**/   
  40.             requestWindowFeature(Window.FEATURE_NO_TITLE);   
  41.             getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,   
  42.               WindowManager.LayoutParams.FLAG_FULLSCREEN);   
  43.                
  44.             setContentView(R.layout.main);   
  45.             gridView=(GridView) this.findViewById(R.id.gridView1);   
  46.             imageAdapterView = new ImageAdapterView(this);   
  47.             gridView.setAdapter(imageAdapterView);   
  48.             gallery = (Gallery) this.findViewById(R.id.gallery1);   
  49.             listItems = getListItems();   
  50.             listViewAdapter = new ImageAdapter(this,listItems);   
  51.             gallery.setAdapter(listViewAdapter);   
  52.               
  53.         }   
  54.   
  55.                
  56.          
  57.         private List<Map<String,Object>> getListItems(){   
  58.             List<Map<String,Object>> listItems = new ArrayList<Map<String,Object>>();   
  59.             for(int i=0;i<goodsNames.length;i++){   
  60.                 Map<String,Object> map = new HashMap<String,Object>();   
  61.                 map.put("image", imgeIDs[i]);   
  62.                 map.put("title", goodsNames[i]);   
  63.                 map.put("info", money[i]+"元");   
  64.                   
  65.                 listItems.add(map);   
  66.             }   
  67.             return listItems;   
  68.         }   
  69.   
  70. }  

  71. package com.android.wei.zidingyi.adapter;

  72. import android.app.Activity;

  73. import android.os.Bundle;
  74. import android.view.Window;
  75. import android.view.WindowManager;
  76. import android.widget.Gallery;
  77. import android.widget.GridView;

  78. import java.util.*;


  79. public class MyActivity extends Activity {
  80.           
  81.             private Gallery gallery;
  82.             private GridView gridView;
  83.             private ImageAdapter listViewAdapter;
  84.             public static  ImageAdapterView imageAdapterView;
  85.             private List<Map<String,Object>> listItems;
  86.             private Integer[] imgeIDs = {
  87.                     R.drawable.niao,R.drawable.niao,R.drawable.rui,R.drawable.rui,
  88.                     R.drawable.ning,R.drawable.ning
  89.             };
  90.             private String[] goodsNames={
  91.                     "土豆丝","土豆块","土豆泥","红烧土豆",
  92.                     "麻辣土豆","清蒸土豆"
  93.             };
  94.             private String[] goodsDetails={
  95.                     "土豆丝:便宜又好吃",        "土豆丝:便宜又好吃",        "土豆丝:便宜又好吃",       
  96.                     "土豆丝:便宜又好吃",        "土豆丝:便宜又好吃",        "土豆丝:便宜又好吃",
  97.             };
  98.             private int[] money={
  99.                     2,3,3,10,8,13       
  100.             };
  101.           
  102.             public void onCreate(Bundle savedInstanceState) {
  103.                 super.onCreate(savedInstanceState);
  104.                 /**全屏显示**/
  105.                 requestWindowFeature(Window.FEATURE_NO_TITLE);
  106.                 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
  107.                   WindowManager.LayoutParams.FLAG_FULLSCREEN);
  108.                 
  109.                 setContentView(R.layout.main);
  110.                 gridView=(GridView) this.findViewById(R.id.gridView1);
  111.                 imageAdapterView = new ImageAdapterView(this);
  112.                 gridView.setAdapter(imageAdapterView);
  113.                 gallery = (Gallery) this.findViewById(R.id.gallery1);
  114.                 listItems = getListItems();
  115.                 listViewAdapter = new ImageAdapter(this,listItems);
  116.                 gallery.setAdapter(listViewAdapter);
  117.                
  118.             }

  119.                    
  120.           
  121.             private List<Map<String,Object>> getListItems(){
  122.                     List<Map<String,Object>> listItems = new ArrayList<Map<String,Object>>();
  123.                     for(int i=0;i<goodsNames.length;i++){
  124.                             Map<String,Object> map = new HashMap<String,Object>();
  125.                             map.put("image", imgeIDs[i]);
  126.                             map.put("title", goodsNames[i]);
  127.                             map.put("info", money[i]+"元");
  128.                            
  129.                             listItems.add(map);
  130.                     }
  131.                     return listItems;
  132.             }

  133. }
复制代码
然后是Gallery的



Java代码
  1. package com.android.wei.zidingyi.adapter;   
  2.   
  3. import android.content.Context;   
  4. import android.view.LayoutInflater;   
  5. import android.view.View;   
  6. import android.view.ViewGroup;   
  7. import android.widget.BaseAdapter;   
  8. import android.widget.Button;   
  9.   
  10. import android.widget.ImageView;   
  11. import android.widget.TextView;   
  12. import android.widget.Toast;   
  13.   
  14. import java.util.*;   
  15.   
  16.   
  17.   
  18.   
  19.   
  20.   
  21. public class ImageAdapter extends BaseAdapter{   
  22.     private Context context;   
  23.       
  24.       
  25.     private List<Map<String,Object>> listItems;   
  26.       
  27.     private LayoutInflater listContainer;   
  28.       
  29.     private boolean[] hasChecked;   
  30.     public final class ListItemView{   
  31.         public ImageView image;   
  32.         public TextView title;   
  33.         public TextView info;   
  34.            
  35.       
  36.         public Button add;   
  37.     }   
  38.       
  39.     public ImageAdapter(Context context,List<Map<String,Object>> listItems){   
  40.         this.context = context;   
  41.         listContainer = LayoutInflater.from(context);   
  42.         this.listItems = listItems;   
  43.         hasChecked = new boolean[getCount()];   
  44.     }   
  45.     @Override  
  46.     public int getCount() {   
  47.         // TODO Auto-generated method stub   
  48.         return listItems.size();   
  49.     }   
  50.   
  51.     @Override  
  52.     public Object getItem(int position) {   
  53.         // TODO Auto-generated method stub   
  54.         return null;   
  55.     }   
  56.   
  57.     @Override  
  58.     public long getItemId(int position) {   
  59.         // TODO Auto-generated method stub   
  60.         return 0;   
  61.     }   
  62.       
  63.       
  64.       
  65.   
  66.     @Override  
  67.     public View getView(int position, View convertView, ViewGroup parent) {   
  68.         final int  selectId = position;   
  69.         ListItemView listItemView = null;   
  70.         if(convertView ==null){   
  71.             listItemView = new ListItemView();   
  72.             convertView = listContainer.inflate(R.layout.list_item, null);   
  73.             //获得控件对象   
  74.             listItemView.image =(ImageView) convertView.findViewById(R.id.imageitem);   
  75.             listItemView.title =(TextView) convertView.findViewById(R.id.textview);   
  76.             listItemView.info =(TextView) convertView.findViewById(R.id.textview1);   
  77.             listItemView.add =(Button) convertView.findViewById(R.id.button1);   
  78.                
  79.            //设置空间集到convertView   
  80.             convertView.setTag(listItemView);   
  81.         }else{   
  82.             listItemView = (ListItemView) convertView.getTag();   
  83.         }   
  84.         //设置文字图片   
  85.         listItemView.image.setBackgroundResource((Integer)listItems.get(position).get("image"));   
  86.         listItemView.title.setText((String)listItems.get(position).get("title"));   
  87.         listItemView.info.setText((String) listItems.get(position).get("info"));   
  88.         listItemView.add.setOnClickListener(new View.OnClickListener() {   
  89.                
  90.             @Override  
  91.             public void onClick(View v) {   
  92.                 Map<String,Object> map = new HashMap<String,Object>();   
  93.                 map.put("image", listItems.get(selectId).get("image"));   
  94.                
  95.                 ImageAdapterView.menuList.add(map);   
  96.                MyActivity.imageAdapterView.notifyDataSetChanged();   
  97.             }   
  98.         });   
  99.            
  100.            
  101.         return convertView;   
  102.     }   
  103.   
  104. }  

  105. package com.android.wei.zidingyi.adapter;

  106. import android.content.Context;
  107. import android.view.LayoutInflater;
  108. import android.view.View;
  109. import android.view.ViewGroup;
  110. import android.widget.BaseAdapter;
  111. import android.widget.Button;

  112. import android.widget.ImageView;
  113. import android.widget.TextView;
  114. import android.widget.Toast;

  115. import java.util.*;






  116. public class ImageAdapter extends BaseAdapter{
  117.     private Context context;
  118.    
  119.    
  120.     private List<Map<String,Object>> listItems;
  121.    
  122.     private LayoutInflater listContainer;
  123.    
  124.     private boolean[] hasChecked;
  125.     public final class ListItemView{
  126.             public ImageView image;
  127.             public TextView title;
  128.             public TextView info;
  129.            
  130.    
  131.             public Button add;
  132.     }
  133.    
  134.     public ImageAdapter(Context context,List<Map<String,Object>> listItems){
  135.             this.context = context;
  136.             listContainer = LayoutInflater.from(context);
  137.             this.listItems = listItems;
  138.             hasChecked = new boolean[getCount()];
  139.     }
  140.         @Override
  141.         public int getCount() {
  142.                 // TODO Auto-generated method stub
  143.                 return listItems.size();
  144.         }

  145.         @Override
  146.         public Object getItem(int position) {
  147.                 // TODO Auto-generated method stub
  148.                 return null;
  149.         }

  150.         @Override
  151.         public long getItemId(int position) {
  152.                 // TODO Auto-generated method stub
  153.                 return 0;
  154.         }
  155.        
  156.        
  157.        

  158.         @Override
  159.         public View getView(int position, View convertView, ViewGroup parent) {
  160.             final int  selectId = position;
  161.                 ListItemView listItemView = null;
  162.                 if(convertView ==null){
  163.                         listItemView = new ListItemView();
  164.                         convertView = listContainer.inflate(R.layout.list_item, null);
  165.                         //获得控件对象
  166.                         listItemView.image =(ImageView) convertView.findViewById(R.id.imageitem);
  167.                         listItemView.title =(TextView) convertView.findViewById(R.id.textview);
  168.                         listItemView.info =(TextView) convertView.findViewById(R.id.textview1);
  169.                         listItemView.add =(Button) convertView.findViewById(R.id.button1);
  170.                        
  171.                    //设置空间集到convertView
  172.                         convertView.setTag(listItemView);
  173.                 }else{
  174.                         listItemView = (ListItemView) convertView.getTag();
  175.                 }
  176.                 //设置文字图片
  177.                 listItemView.image.setBackgroundResource((Integer)listItems.get(position).get("image"));
  178.                 listItemView.title.setText((String)listItems.get(position).get("title"));
  179.                 listItemView.info.setText((String) listItems.get(position).get("info"));
  180.         listItemView.add.setOnClickListener(new View.OnClickListener() {
  181.                        
  182.                         @Override
  183.                         public void onClick(View v) {
  184.                                 Map<String,Object> map = new HashMap<String,Object>();
  185.                             map.put("image", listItems.get(selectId).get("image"));
  186.                    
  187.                             ImageAdapterView.menuList.add(map);
  188.                        MyActivity.imageAdapterView.notifyDataSetChanged();
  189.                         }
  190.                 });
  191.                
  192.                
  193.                 return convertView;
  194.         }

  195. }
复制代码
最后GridView的



Java代码
  1. package com.android.wei.zidingyi.adapter;   
  2.   
  3. import android.content.Context;   
  4. import android.view.LayoutInflater;   
  5. import android.view.View;   
  6. import android.view.ViewGroup;   
  7. import android.widget.BaseAdapter;   
  8. import android.widget.ImageButton;   
  9. import android.widget.ImageView;   
  10. import android.widget.Toast;   
  11.   
  12. import java.util.*;   
  13.   
  14. public class ImageAdapterView extends BaseAdapter{   
  15.     private Context context;   
  16.       
  17.     private LayoutInflater layoutInflater;   
  18.       
  19.     public static List<Map<String,Object>> menuList = new ArrayList<Map<String,Object>>();   
  20.       
  21.     public static class ItemListView{   
  22.         public ImageButton image;   
  23.     }   
  24.     public ImageAdapterView(Context context){   
  25.         this.context = context;   
  26.         layoutInflater = LayoutInflater.from(context);   
  27.            
  28.     }   
  29.     public int getCount() {   
  30.         // TODO Auto-generated method stub   
  31.         return menuList.size();   
  32.     }   
  33.   
  34.     @Override  
  35.     public Object getItem(int position) {   
  36.         // TODO Auto-generated method stub   
  37.         return null;   
  38.     }   
  39.   
  40.     @Override  
  41.     public long getItemId(int position) {   
  42.         // TODO Auto-generated method stub   
  43.         return 0;   
  44.     }   
  45.   
  46.     @Override  
  47.     public View getView(int position, View convertView, ViewGroup parent) {   
  48.         ItemListView itemListView = null;   
  49.         if(convertView==null){   
  50.             itemListView = new ItemListView();   
  51.             convertView = layoutInflater.inflate(R.layout.item_list1, null);   
  52.                
  53.             itemListView.image=(ImageButton) convertView.findViewById(R.id.menuImage);   
  54.             convertView.setTag(itemListView);   
  55.         }else {   
  56.             itemListView=(ItemListView)convertView.getTag();   
  57.         }   
  58.        itemListView.image.setBackgroundResource((Integer)menuList.get(position).get("image"));   
  59.        itemListView.image.setOnClickListener(new View.OnClickListener() {   
  60.            
  61.         @Override  
  62.         public void onClick(View v) {   
  63.             // TODO Auto-generated method stub   
  64.             Toast.makeText(context, "触发成功", Toast.LENGTH_SHORT).show();   
  65.         }   
  66.     });   
  67.         return convertView;   
  68.     }   
  69.   
  70. }  
复制代码

1.jpg (43.61 KB, 下载次数: 9)

1.jpg

2.jpg (58.03 KB, 下载次数: 11)

2.jpg

论坛徽章:
0
2 [报告]
发表于 2011-12-23 22:22 |只看该作者
谢谢分享  希望于楼主多多交流
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP