android开发_SimpleAdapter适配器

 

新建项目:

项目结构:

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 }

android开发_SimpleAdapter适配器的更多相关文章

  1. Android开发之适配器-ListView适配器的重复数据

    适配器是Android中的数据与View视图的桥梁,作用就是将数据通过适配器显示到对应的View视图上. 工作中,在用ListView做适配器数据时候,有些人肯定碰见过,如何优化效率,但是又出现重复数 ...

  2. Android 开发ListView适配器优化

    我们都知道Android中Adapter的作用就是ListView界面与数据之间的桥梁,当列表里的每一项显示到页面时,都会调用Adapter的getView方法返回一个View.想过没有? 在我们的列 ...

  3. Android开发工程师文集-Fragment,适配器,轮播图,ScrollView,Gallery 图片浏览器,Android常用布局样式

    Android开发工程师文集-Fragment,适配器,轮播图,ScrollView,Gallery 图片浏览器,Android常用布局样式 Fragment FragmentManager frag ...

  4. Android开发进阶 -- 通用适配器 CommonAdapter

    在Android开发中,我们经常会用到ListView 这个组件,为了将ListView 的内容展示出来,我们会去实现一个Adapter来适配,将Layout中的布局以列表的形式展现到组件中.     ...

  5. Android开发之自定义的ListView(UITableViewController)

    Android开发中的ListView, 顾名方法思义,就是表视图.表示图在iOS开发中就是TableView.两者虽然名称不一样,但是其使用方法,使用场景以及该控件的功能都极为相似,都是用来展示大量 ...

  6. Android开发3:Intent、Bundle的使用和ListView的应用 、RelativeLayout(相对布局)简述(简单通讯录的实现)

    前言 啦啦啦~博主又来骚扰大家啦~大家是不是感觉上次的Android开发博文有点长呢~主要是因为博主也是小白,在做实验的过程中查询了很多很多概念,努力去理解每一个知识点,才完成了最终的实验.还有就是随 ...

  7. 让你Android开发更简单

    转载:http://www.jianshu.com/p/22ff8b5fdadc 搭建一个新的Android项目,你会怎么做? 每个人对应用框架的理解不相同,但是最终达到的效果应该是一样: ①降低项目 ...

  8. Android开发App工程结构搭建

    本文算是一篇漫谈,谈一谈关于android开发中工程初始化的时候如何在初期我们就能搭建一个好的架构.      关于android架构,因为手机的限制,目前我觉得也确实没什么大谈特谈的,但是从开发的角 ...

  9. Android开发中,那些让您觉得相见恨晚的方法、类或接口

    Android开发中,那些让你觉得相见恨晚的方法.类或接口本篇文章内容提取自知乎Android开发中,有哪些让你觉得相见恨晚的方法.类或接口?,其实有一部是JAVA的,但是在android开发中也算常 ...

随机推荐

  1. 怎样在Eclipse中使用debug模式调试程序

    最基本的操作是: 1, 首先在一个java文件中设断点,然后运行,当程序走到断点处就会转到debug视图下, 2, F5键与F6键均为单步调试,F5是step into,也就是进入本行代码中执行,F6 ...

  2. Flink资料(6) -- 如何添加一个新的Operator

    false false false false EN-US ZH-CN X-NONE /* Style Definitions */ table.MsoNormalTable {mso-style-n ...

  3. php配置redis支持

    在php.ini里面添加下面两行,注意这两行的顺序一定不要颠倒(扩展库下载网址https://github.com/phpredis/phpredis/downloads),同时注意这2个文件的版本一 ...

  4. .net mvc下的Areas和小写Url

    首先是一个站点有前台后台两部分,这个要怎么来做.可以在mvc项目中添加区域(Areas)来实现,当添加一个名为Admin的区域时,项目下多了一个Areas/Admin目录,里边有Controllers ...

  5. 关于Linux Kernel 2.6.28 以上有缺陷,在第208.5天自行重啟的问题

        今天看到一转帖如下: Linux Kernel 2.6.28 以上有缺陷,在第208.5天自行重啟 https://access.redhat.com/knowledge/solutions/ ...

  6. 帝国cms <!--list.var1-->产生不同样式

    制作帝国列表模板正常情况下 列表内容模板(list.var) (*) 写 <li class=''>[!--title--]<a href='[!--titleurl--]'> ...

  7. CF卡是什么

    CF卡(Compact Flash)最初是一种用于便携式电子设备的数据存储设备.作为一种存储设备,它革命性的使用了闪存,于1994年首次由SanDisk公司生产并制定了相关规范.当前,它的物理格式已经 ...

  8. 你是否决绝平庸,你有勇气来学C/C++吗,有勇气来检验你是否经得起世界五百强的面试

       如果你来传智播客学习 你的目标就是要积累工作经验 有机会参加世界五百强的面试 秒杀世界五百强的面试 赢得高薪的offer! C/C++课程大纲 C语言3周21天 完全掌握C语言的本质,成为一名合 ...

  9. css之float

    在 HTML中的所有对象,默认分为两种:块元素(block element).内联元素(inline element),虽然也存在着可变元素,但只是随上下文关系确定该元素是块元素或者内联元素. 其实C ...

  10. java读取TXT文件的方法

    java读取txt文件内容.可以作如下理解: 首先获得一个文件句柄.File file = new File(); file即为文件句柄.两人之间连通电话网络了.接下来可以开始打电话了. 通过这条线路 ...