GridView和ListView一样,是Android中比较常见的布局控件,譬如我们的手机桌面其实就是一个GridView。

         效果:

Android笔记(二十二) Android中的GridView

         实现过程和ListView类似,也是通过Adapter将数据源展示在GridView中去,代码去下:

MainActivity.java

package cn.lixyz.gridviewtest;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

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

public class MainActivity extends AppCompatActivity implements AdapterView.OnItemClickListener {

    private GridView gridView;
    private List<Map<String, Object>> dataList;
    private int[] icon = {R.drawable.address_book,
            R.drawable.calendar, R.drawable.camera, R.drawable.clock,
            R.drawable.games_control, R.drawable.messenger, R.drawable.ringtone,
            R.drawable.settings, R.drawable.speech_balloon, R.drawable.weather,
            R.drawable.world, R.drawable.youtube};
    private String[] iconName = {"通讯录", "日历", "照相机", "时钟", "游戏", "短信",
            "铃声", "设置", "语音", "天气", "浏览器", "视频"};
    private SimpleAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        gridView = (GridView) findViewById(R.id.gridView);

        //1. 准备数据源
        //2. 新建适配器SimpleAdapter
        //3. GridView加载适配器
        //4. GridView配置监听器
        dataList = new ArrayList<Map<String, Object>>();
        adapter = new SimpleAdapter(this, getData(), R.layout.item,
                new String[]{"image", "text"}, new int[]{R.id.image, R.id.text});

        gridView.setAdapter(adapter);
        gridView.setOnItemClickListener(this);

    }

    private List<Map<String, Object>> getData() {

        for (int i = 0; i < icon.length; i++) {
            Map<String, Object> map = new HashMap<String, Object>();
            map.put("image", icon[i]);
            map.put("text", iconName[i]);
            dataList.add(map);
        }

        return dataList;
    }

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Toast.makeText(this, "我是" + iconName[position], Toast.LENGTH_SHORT).show();

    }
}
View Code

相关文章:

  • 2021-12-27
  • 2021-10-05
  • 2021-09-07
  • 2021-06-01
  • 2021-07-26
  • 2021-11-16
  • 2022-12-23
  • 2021-04-13
猜你喜欢
  • 2021-10-13
  • 2021-12-23
  • 2021-08-02
  • 2021-08-04
  • 2021-11-30
相关资源
相似解决方案