GridView

java文件

声明GridView,simpleAdapter的数据源 datalist,所有darwable的id,namey以及simpleAdapter类型的适配器adapter




    private GridView gridView;
    private List<Map<String, Object>>datalist;//声明simpleAdapter的数据源
    //因为所有drawable的id都是整形,所以用一个整形数组对他们进行封装
    private int logo[]={R.drawable.camera,R.drawable.clock,R.drawable.phone,R.drawable.mail,R.drawable.qq,R.drawable.voice};
    private String logoName[]={"camera","clock","phone","mail","qq","voice"};
    //声明适配器
    private SimpleAdapter adapter;

  • 创建数据源
datalist=new ArrayList<Map<String, Object>>();//把数据源的集合新建出来

//Map是以泛型(<String,Object>组成)
    private List<Map<String, Object>> getData() {
        for (int i = 0; i < logo.length; i++) {
            Map<String, Object>map=new HashMap<String,Object>();
            map.put("image", logo[i]);
            map.put("text", logoName[i]);
            datalist.add(map);//把新建好的map加载到集合中来

        }
        return datalist;
  • 新建适配器(simpleAdapter),simpleAdapter的数据源是一个特殊泛型的集合

        /* 参数1(context):上下文,表示当前的Activity
         * 
         * 参数2(data):List<? extends Map<String, ?>> 类型 
         * 每一个Map(key-value对)中的key必须去包含所有在from中所指定的键(pic和text)
         *
         * 参数3(resource):列表项的布局文件ID
         * 参数4(from):Map中的键名
         * 参数5(to):绑定数据视图中的ID,与from成对使用 
         */
adapter=new SimpleAdapter(this, getData(),R.layout.new_layout , new String[]{"image","text"},
                new int[]{R.id.imageView,R.id.textView});
  • GridView加载适配器
//视图加载适配器
gridView.setAdapter(adapter);
  • GridVView配置事件监听器

        gridView.setOnItemClickListener(this);
        @Override
    //position的下标也是从零开始,正好与数组的下标一一对应
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Toast.makeText(this, "我是"+logoName[position], Toast.LENGTH_LONG).show();

    }

###xml文件

 <!-- 
    abdroid:numColumns="" 每一行显示多少列
    android:horziontalSpacing="" 两列之间的间距
    android:verticalSpacing="" 两行之间的间距
    -->
    <ImageView 
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#000000"/>
    <GridView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/gridView"        
        android:numColumns="3"
        android:verticalSpacing="30dp"
        android:horizontalSpacing="30dp"/>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值