zoukankan      html  css  js  c++  java
  • 使用GridView和SimpleAdapter实现手机界面常见的九宫格

    首先是两个XML界面:

    <?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">
    
        <GridView
            android:id="@+id/MyGridView"
            android:layout_alignParentTop="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:stretchMode="columnWidth"
            android:numColumns="3" />
    </LinearLayout>
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <ImageView
            android:id="@+id/ItemImageView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingLeft="10dp"
            android:layout_gravity="center"/>
        <TextView
            android:id="@+id/ItemTextView"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center"/>
    
    </LinearLayout>

    然后是Java实现程序:

     1 package com.example.zhoushasha.myapplication;
     2 
     3 import android.support.v7.app.AppCompatActivity;
     4 import android.os.Bundle;
     5 import android.view.View;
     6 import android.view.Window;
     7 import android.view.WindowManager;
     8 import android.widget.AdapterView;
     9 import android.widget.GridView;
    10 import android.widget.SimpleAdapter;
    11 import android.widget.Toast;
    12 
    13 import java.util.ArrayList;
    14 import java.util.HashMap;
    15 import java.util.List;
    16 
    17 public class MainActivity extends AppCompatActivity {
    18     private GridView mGridView;
    19 
    20 
    21 
    22     private int[] imageRes = { R.drawable.tu1, R.drawable.tu2,
    23             R.drawable.tu3,R.drawable.ty4,R.drawable.tu5,R.drawable.tu6,R.drawable.tu7,R.drawable.tu8,R.drawable.tu9 };
    24 
    25 
    26 
    27     private String[] itemName = { "图1", "图2", "图3", "图4", "图5 ",
    28 
    29             "图6", "图7 ", "图8", "图9"  };
    30 
    31     @Override
    32 
    33     public void onCreate(Bundle savedInstanceState) {
    34 
    35         super.onCreate(savedInstanceState);
    36         setContentView(R.layout.activity_main);
    37 
    38 
    39 
    40         mGridView = (GridView) findViewById(R.id.MyGridView);
    41 
    42         List<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>();
    43 
    44         int length = itemName.length;
    45 
    46         for (int i = 0; i < length; i++) {
    47 
    48             HashMap<String, Object> map = new HashMap<String, Object>();
    49 
    50             map.put("ItemImageView", imageRes[i]);
    51 
    52             map.put("ItemTextView", itemName[i]);
    53 
    54             data.add(map);
    55 
    56         }
    57 
    58         //为itme.xml添加适配器
    59 
    60         SimpleAdapter simpleAdapter = new SimpleAdapter(MainActivity.this,
    61 
    62                 data, R.layout.item, new String[] { "ItemImageView","ItemTextView" },
    63                 new int[] { R.id.ItemImageView,R.id.ItemTextView });
    64 
    65         mGridView.setAdapter(simpleAdapter);
    66 
    67         //为mGridView添加点击事件监听器
    68 
    69         mGridView.setOnItemClickListener(new GridViewItemOnClick());
    70 
    71     }
    72 
    73     //定义点击事件监听器
    74 
    75     public class GridViewItemOnClick implements AdapterView.OnItemClickListener {
    76 
    77         @Override
    78 
    79         public void onItemClick(AdapterView<?> arg0, View view, int position, long arg3) {
    80 
    81             Toast.makeText(getApplicationContext(), position + "",
    82 
    83                     Toast.LENGTH_SHORT).show();
    84 
    85         }
    86 
    87     }
    88 
    89 }

    运行就可以实现功能

  • 相关阅读:
    待解决问题集锦
    蓝桥杯--- 历届试题 连号区间数(水题)
    蓝桥杯---历届试题 翻硬币 (水题)
    nyoj 678 最小K个数之和
    hdoj 2 括号配对问题【数组模拟实现+STL实现】
    hdoj 1016 Prime Ring Problem
    nyoj 62 笨小熊
    nyoj 47 过河问题
    nyoj 456 邮票分你一半
    nyoj 171 聪明的kk
  • 原文地址:https://www.cnblogs.com/zhoushasha/p/6828147.html
Copyright © 2011-2022 走看看