Android中ListView,Gallery,GridView 的适配器Adapter的使用

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

4. [代码]Gallery     

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

5. [代码]GridView     

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值