安卓中ListView的用法

1,作用是ArrayList和 ListView的桥梁。这个ArrayList里边的每一项都是一个Map<String,?>类型。
      ArrayList当中的每一项 Map对象都和ListView里边的每一项进行数据绑定一一对应。

       2,SimpleAdapter的构造函数:
SimpleAdapter(Context  context, List<? extends Map<String, ?>>  data, int resource, String[]  from, int[] to)
      参数:
      1,context:上下文。
      2,data:基于Map的list。Data里边的每一项都和 ListView里边的每一项对应。Data里边的每一项都是一个Map类型,这个Map类里边包含了ListView每一行需要的数据。
      3,resource :就是一个布局layout,可引用系统提供的,也可以自定义。每一个Item的布局文件
      4,from:这是个名字数组,每个名字是为了在 ArrayList数组的每一个item索引Map<String,Object>的Object用的。即 map 中得key值
      5,to:里面是一个TextView数组。这些 TextView是以id的形式来表示的。例如:Android.R.id.text1,这个text1在layout当中是可以索引的。

public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3)
各项的意义:arg1是当前item的view,通过它可以获得该项中的各个组件。 
              例如arg1.textview.settext("asd");
          arg2是当前item的ID。当前listview中item的位置
          arg3是当前的item在listView中的相对位置!


package com.example.lanzhoulamian;


import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

public class TwoActivity extends Activity {
    private String[] name = new String[]{
        "凉菜",
        "凉面",
        "汤类",
        "主食"
    };
      
    private String[] desc = { "凉拌黄瓜", "杂酱面", "西红柿蛋汤", "馒头" };  
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_two);
        
        ListView list = (ListView) findViewById(R.id.listView1);
        //map集合存放SimpleAdapter的数据源
        final List<Map<String, Object>> listems = new ArrayList<Map<String, Object>>();  
            for (int i = 0; i < name.length; i++) {  
                Map<String, Object> listem = new HashMap<String, Object>();  
                listem.put("name", name[i]);  
                listem.put("desc", desc[i]);
                
                listems.add(listem);  
            }  
        
            SimpleAdapter simplead = new SimpleAdapter(this, listems,  
                    R.layout.list_item, new String[] {"name", "desc" },  
                    new int[] {R.id.textView1,R.id.textView2});
            list.setAdapter(simplead);
            
           list.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {
                Toast.makeText(TwoActivity.this, "恭喜你选中了"+listems.get(arg2).get("desc"),Toast.LENGTH_LONG ).show();//listems.get(arg2).get("desc")获取listview中每一个item的数据弹出一个文本通过get()得到map集合中的数据
                
            }
               
        });
           
    }
              
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.two, menu);
        return true;
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值