五、Android GridView、事件

gridview.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical">
<!--
        android:numColumns="" 每一行显示多少列
        android:horizontalSpacing="" 两列之间的间距
        android:verticalSpacing=""  两行之间的间距
-->
    <GridView
        android:id="@+id/gridview1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:numColumns="3"
        android:horizontalSpacing="10dp"
        android:verticalSpacing="10dp">

    </GridView>
</android.support.constraint.ConstraintLayout>

gridview中每一项显示:gridviewitem.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/gridviewimg"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@mipmap/ic_launcher"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent" />

    <TextView
        android:id="@+id/gridviewtext"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="文字"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent" />
</android.support.constraint.ConstraintLayout>

gridview.java

package com.example.administrator.listview;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
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;

/**
 * Created by Administrator on 2018/3/9 0009.
 */

public class gridview extends AppCompatActivity implements AdapterView.OnItemClickListener{
    private GridView gridView;
    private List<Map<String,Object>> dataList;
    private int[] icon={R.mipmap.ic_launcher,R.mipmap.ic_launcher,
            R.mipmap.ic_launcher,R.mipmap.ic_launcher,R.mipmap.ic_launcher,
            R.mipmap.ic_launcher,R.mipmap.ic_launcher,R.mipmap.ic_launcher,
            R.mipmap.ic_launcher};
    private  String[] iconName={"通讯录1","通讯录2","通讯录3","通讯录4",
            "通讯录5","通讯录6","通讯录7","通讯录8","通讯录9"};
    private SimpleAdapter simpleAdapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.gridview);
        gridView = findViewById(R.id.gridview1);
        /*
        * 1.准备数据源
        * 2.新建适配器(simpleAdapter)
        * 3.GridView加载适配器
        * 4.GridView配置事件监听器(OnItemClickListener) 
        * */
        dataList =new ArrayList<Map<String,Object>>();
//        getdata();
        simpleAdapter=new SimpleAdapter(this,getdata(),R.layout.gridviewitem,new String[]{"img","text"},new int[]{R.id.gridviewimg,R.id.gridviewtext});
        gridView.setAdapter(simpleAdapter);
        gridView.setOnItemClickListener(this);
    }

    private List<Map<String,Object>> getdata() {
        Log.i("tag", "iconlength="+icon.length);
        for (int i=0;i<icon.length;i++){
            Map<String,Object> map=new HashMap<String,Object>();
            map.put("img",icon[i]);
            map.put("text",iconName[i]);
            dataList.add(map);

        }
        return dataList;
    }

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










猜你喜欢

转载自blog.csdn.net/qq_38234785/article/details/79502079