首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >android开发_SimpleAdapter适配器

android开发_SimpleAdapter适配器

作者头像
Hongten
发布2018-09-13 16:01:45
3880
发布2018-09-13 16:01:45
举报
文章被收录于专栏:HongtenHongten

新建项目:

项目结构:

drawable-hdpi文件夹中的图片是自己加入的。主要是在菜单选项中显示的图片:

运行效果:

代码部分:

main.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:orientation="vertical"
 4     android:layout_width="fill_parent"
 5     android:layout_height="fill_parent"
 6     >
 7     <!-- 菜单选项的布局,设置高为"65sp",位置是在父窗口的底部,设置为不可见-->
 8     <GridView
 9         android:id="@+id/gv_buttom_menu"
10         android:layout_width="fill_parent"
11         android:layout_height="65sp"
12         android:layout_alignParentBottom="true"
13         android:visibility="gone"
14     ></GridView>    
15 </RelativeLayout>

item_menu.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="fill_parent"
 4     android:layout_height="wrap_content"
 5     android:paddingBottom="5dip"
 6     >
 7     <!-- 这个布局文件是用来布局菜单选项的 -->
 8     <!-- 菜单中图片的显示 -->
 9       <ImageView
10           android:id="@+id/item_image"
11           android:layout_centerHorizontal="true"
12           android:layout_width="wrap_content"
13           android:layout_height="wrap_content"
14       ></ImageView>
15       <!-- 菜单中图片下面的文字 -->
16     <TextView
17         android:id="@+id/item_text"
18         android:layout_below="@id/item_image"
19         android:layout_width="wrap_content"
20         android:layout_height="wrap_content"
21         android:layout_centerHorizontal="true"
22     ></TextView>
23 </RelativeLayout>

MainActivity.java

  1 package com.b510;
  2 
  3 import java.util.ArrayList;
  4 import java.util.HashMap;
  5 
  6 import android.app.Activity;
  7 import android.os.Bundle;
  8 import android.view.Gravity;
  9 import android.view.KeyEvent;
 10 import android.view.View;
 11 import android.widget.GridView;
 12 import android.widget.SimpleAdapter;
 13 
 14 public class MainActivity extends Activity {
 15     /** 定义底部菜单选项 */
 16     GridView gv_buttom_menu;
 17 
 18     /** Called when the activity is first created. */
 19     @Override
 20     public void onCreate(Bundle savedInstanceState) {
 21         super.onCreate(savedInstanceState);
 22         setContentView(R.layout.main);
 23     }
 24 
 25     /**
 26      * 当按键被按下的时候调用此方法
 27      */
 28     @Override
 29     public boolean onKeyDown(int keyCode, KeyEvent event) {
 30         if (keyCode == KeyEvent.KEYCODE_MENU) {
 31             if (gv_buttom_menu == null) {
 32                 loadButtomMenu();
 33             }
 34             // 默认情况下面是View.GONE
 35             if (gv_buttom_menu.getVisibility() == View.GONE) {
 36                 gv_buttom_menu.setVisibility(View.VISIBLE);// 菜单设置可见
 37             } else {
 38                 gv_buttom_menu.setVisibility(View.GONE);// 菜单设置不可见
 39             }
 40         }
 41 
 42         return super.onKeyDown(keyCode, event);
 43     }
 44 
 45     /**
 46      * 加载菜单
 47      */
 48     private void loadButtomMenu() {
 49         gv_buttom_menu = (GridView) findViewById(R.id.gv_buttom_menu);
 50         // 设置菜单选项的背景图片
 51         gv_buttom_menu.setBackgroundResource(R.drawable.channelgallery_bg);
 52         // 设置列数,为5列
 53         gv_buttom_menu.setNumColumns(5);
 54         // 设置位置
 55         gv_buttom_menu.setGravity(Gravity.CENTER);
 56         // 垂直间隔10
 57         gv_buttom_menu.setVerticalSpacing(10);
 58         // 水平间隔10
 59         gv_buttom_menu.setHorizontalSpacing(10);
 60         ArrayList data = new ArrayList();
 61         // 定义菜单选项的图片和文字
 62         // 增加菜单
 63         HashMap map = new HashMap();
 64         map.put("itemImage", R.drawable.menu_new_user);
 65         map.put("itemText", "增加");
 66         data.add(map);
 67         // 查找菜单
 68         map = new HashMap();
 69         map.put("itemImage", R.drawable.menu_search);
 70         map.put("itemText", "查找");
 71         data.add(map);
 72         // 删除菜单
 73         map = new HashMap();
 74         map.put("itemImage", R.drawable.menu_delete);
 75         map.put("itemText", "删除");
 76         data.add(map);
 77         // 菜单选项
 78         map = new HashMap();
 79         map.put("itemImage", R.drawable.controlbar_showtype_list);
 80         map.put("itemText", "菜单");
 81         data.add(map);
 82         // 退出菜单
 83         map = new HashMap();
 84         map.put("itemImage", R.drawable.menu_exit);
 85         map.put("itemText", "退出");
 86         data.add(map);
 87 
 88         // 设置SimpleAdapter
 89         // 1.Context 上下文
 90         // 2.data 是菜单中显示数据信息,包括图片和说明文字
 91         // 3.R.layout.item_ment 从data中取出数据map类型,用此布局文件来展示数据信息,包括图片和说明文字
 92         // 4,5 是将data和布局文件联系起来
 93         // 4 放入map中的key值
 94         // 5 按照map中的key值,把相应的数据传递过来,最后展现出来
 95         SimpleAdapter adapter = new SimpleAdapter(this, data,
 96                 R.layout.item_menu, new String[] { "itemImage", "itemText" },
 97                 new int[] { R.id.item_image, R.id.item_text });
 98 
 99         // gv_buttom_menu只是负责展现,他是没有数据的
100         // adapter是把展现方式和数据联系在一起的一种工具,按照某种特定方式展现出来
101         gv_buttom_menu.setAdapter(adapter);
102 
103     }
104 }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2012-11-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档