ListView使用SimpleAdapter,或者继承BaseAdapter重写

来源:互联网 发布:mac os怎么玩dota2 编辑:程序博客网 时间:2024/05/22 07:49
public class MainActivity extends ActionBarActivity {


    private ListView listView;
    private List<Map<String, Object>> mData;
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.index);
        listView = (ListView) findViewById(R.id.listView);
        //两种方法:一般用SimpleAdapter,或者继承BaseAdapter自己重写。
       /* SimpleAdapter simpleAdapter=new SimpleAdapter(MainActivity.this, getData(), R.layout.activity_main, new String[]{"appimg","appnametext", "sizetext",  
            "amounttext"}, new int[]{R.id.appimg ,R.id.appnametext,  
            R.id.sizetext,R.id.amounttext});
        listView.setAdapter(simpleAdapter);*/
        mData=getData();
        MyAdapter adapter =new MyAdapter(this);
        listView.setAdapter(adapter);
        
        
        
    }


private List<Map<String, Object>> getData() {
// TODO Auto-generated method stub
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();  
    Map<String, Object> map = new HashMap<String, Object>();  
    map.put("appnametext", "微信");  
       map.put("sizetext", "15.2");  
       map.put("amounttext", "1234323");  
       map.put("appimg", R.drawable.ic_launcher);  
       list.add(map);  
         
       map = new HashMap<String, Object>();  
       map.put("appnametext", "手机QQ");  
       map.put("sizetext", "8.5");  
       map.put("amounttext", "122073323");  
       map.put("appimg", R.drawable.ic_launcher);  
       list.add(map);  
         
       map = new HashMap<String, Object>();  
       map.put("appnametext", "手机QQ空间");  
       map.put("sizetext", "6.3");  
       map.put("amounttext", "122393");  
       map.put("appimg", R.drawable.ic_launcher);  
       list.add(map);  
         
       map = new HashMap<String, Object>();  
       map.put("appnametext", "微博");  
       map.put("sizetext", "7.7");  
       map.put("amounttext", "1278323");  
       map.put("appimg", R.drawable.ic_launcher);  
       list.add(map);  
         
       map = new HashMap<String, Object>();  
       map.put("appnametext", "陌陌");  
       map.put("sizetext", "6.9");  
       map.put("amounttext", "1279073");  
       map.put("appimg", R.drawable.ic_launcher);  
       list.add(map);  
         
       map = new HashMap<String, Object>();  
       map.put("appnametext", "飞信");  
       map.put("sizetext", "6.9");  
       map.put("amounttext", "1279073");  
       map.put("appimg", R.drawable.ic_launcher);  
       list.add(map);  
       return list;  
}

public final class ViewHolder {
/**
 * 控件对应的javabean*/
//应用程序logo
       public ImageView appimg;  
       //应用程序名称
       public TextView appnametext;  
       //应用大小
       public TextView sizetext;  
       //下载次数
       public TextView amounttext;  
       //下载按钮
       public Button dowmbutton;  
   }  


public class MyAdapter extends BaseAdapter {  
//用来找一个xml文件,功能跟findviewbyid差不多
       private LayoutInflater mInflater;  
 
       public MyAdapter(Context context) {  
           this.mInflater = LayoutInflater.from(context);  
       }  
 
       @Override  
       public int getCount() {  
           return mData.size();  
       }  
 
       @Override  
       public Object getItem(int arg0) {  
           return null;  
       }  
 
       @Override  
       public long getItemId(int arg0) {  
           return 0;  
       }  
 
       @Override  
       public View getView(int arg0, View arg1, ViewGroup arg2) {  
           ViewHolder holder = null;  
           if (arg1 == null) {  
            //实例化
               holder = new ViewHolder();  
               //找xml布局文件
               arg1 = mInflater.inflate(R.layout.activity_main, null);
               //获取控件
               holder.appimg = (ImageView) arg1.findViewById(R.id.appimg);  
               holder.appnametext = (TextView) arg1.findViewById(R.id.appnametext);  
               holder.sizetext = (TextView) arg1.findViewById(R.id.sizetext);  
               holder.amounttext = (TextView) arg1.findViewById(R.id.amounttext);  
               holder.dowmbutton = (Button) arg1.findViewById(R.id.dowmbutton);  
               //即利用holder,调用convertView.setTag函数
               arg1.setTag(holder);  
           } else {  
               holder = (ViewHolder) arg1.getTag();  
           }  
             
           holder.appimg.setBackgroundResource((Integer) mData.get(arg0).get("appimg"));  
           holder.appnametext.setText((String) mData.get(arg0).get("appnametext"));  
           holder.sizetext.setText((String) mData.get(arg0).get("sizetext"));  
           holder.amounttext.setText((String) mData.get(arg0).get("amounttext"));  
             
           return arg1;  
       }  
 
   }  
阅读全文
0 0
原创粉丝点击