gridview(代码创建gridview)

gridview(代码创建gridview)

阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android

本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:

  • GridView 主要用法
  • GridView 使用案例

GridView 跟ListView 很类似,Listview 主要以列表形式显示数据,GridView 则是以网格形式显示数据,掌握ListView 使用方法后,会很轻松的掌握GridView的使用方法。

GridView 简介

继承关系如下

java.lang.Object

↳ android.view.View

↳ android.view.ViewGroup

↳ android.widget.AdapterView<android.widget.ListAdapter>

↳ android.widget.AbsListView

↳ android.widget.GridView

1. GridView 主要使用方法

GridView主要通过使用自定义BaseAdapter 来适配数据,进而显示到GridView中。主要使用方法如下:

1. 准备数据源

list = new ArrayList<Map<String, Object>>();

2. 为数据源设置适配器


gridview(代码创建gridview)

 MyAdapter adapter = new MyAdapter();

3. 将适配过后点数据显示在GridView 上

 gridView.setAdapter(adapter);

2. GridView 使用Demo

  • 实现效果如下

gridview(代码创建gridview)

GridView

  • 实现代码如下
 private GridView gridView;
 private List<Map<String, Object>> list;
 private int images[] = { R.drawable.gril, R.drawable.ic_launcher,
 R.drawable.gril, R.drawable.ic_launcher, R.drawable.gril,
 R.drawable.ic_launcher, R.drawable.gril, R.drawable.ic_launcher,
 R.drawable.gril };
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_grid_view_method);
 gridView = (GridView) findViewById(R.id.gv);
 // 1. 准备数据源
 list = new ArrayList<Map<String, Object>>();
 for (int i = 0; i < images.length; i++) {
 Map<String, Object> map = new HashMap<String, Object>();
 map.put("image", images[i]);
 map.put("text", "图片" + i);
 list.add(map);
 }
 // 2.为数据源设置适配器
 MyAdapter adapter = new MyAdapter();
 // 3.将适配过后点数据显示在GridView 上
 gridView.setAdapter(adapter);
 // item点击事件处理
 gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
 @Override
 public void onItemClick(AdapterView<?> parent, View view,
 int position, long id) {
 //
 Toast.makeText(GridViewMethod.this,
 list.get(position).get("text").toString(),
 Toast.LENGTH_SHORT).show();
 }
 });
 }
 class MyAdapter extends BaseAdapter {
 @Override
 public int getCount() {
 return list.size();
 }
 @Override
 public Object getItem(int position) {
 return list.get(position);
 }
 @Override
 public long getItemId(int position) {
 return position;
 }
 @Override
 public View getView(int position, View convertView, ViewGroup parent) {
 ViewHolder holder = null;
 if (convertView == null) {
 // 第一次加载创建View,其余复用 View
 convertView = LayoutInflater.from(GridViewMethod.this).inflate(
 R.layout.gridview_item_img_tv, null);
 holder = new ViewHolder();
 holder.imageView = (ImageView) convertView
 .findViewById(R.id.grid_img);
 holder.textView = (TextView) convertView
 .findViewById(R.id.grid_tv);
 // 打标签
 convertView.setTag(holder);
 } else {
 // 从标签中获取数据
 holder = (ViewHolder) convertView.getTag();
 }
 // 根据key值设置不同数据内容
 holder.imageView.setImageResource((Integer) list.get(position).get(
 "image"));
 holder.textView.setText((String) list.get(position).get("text"));
 return convertView;
 }
 }
 class ViewHolder {
 ImageView imageView;
 TextView textView;
 }
  • GridView 布局如下
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 tools:context="com.android.program.programandroid.ListView.GridViewMethod">
 <GridView
 android:id="@+id/gv"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:layout_gravity="center"
 android:gravity="center"
 android:horizontalSpacing="10dp"
 android:numColumns="3"
 android:verticalSpacing="10dp" />
</LinearLayout>
  • item 布局 如下
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical">
 <ImageView
 android:id="@+id/grid_img"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:layout_margin="5dp"
 android:gravity="center_horizontal"
 android:src="@drawable/ic_launcher" />
 <TextView
 android:id="@+id/grid_tv"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:layout_margin="5dp"
 android:textColor="@android:color/darker_gray"
 android:text="test"
 android:gravity="center_horizontal"
 android:textSize="25sp" />
</LinearLayout>

至此GridView 的基本使用方法结束。

如果不是太明白,可以查看上篇文章

ListView 使用详解

友情推荐:

Android 干货分享

至此,本篇已结束,如有不对的地方,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/27716.html

(0)
上一篇 2023-10-04 17:30
下一篇 2023-10-04 19:30

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注