android开发_SimpleAdapter适配器

Pikachu“ 发布于 2013/01/02 19:30
阅读 1K+
收藏 3

新建项目:

项目结构:

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

运行效果:

代码部分:

main.xml

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

item_menu.xml

<?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:paddingBottom="5dip"
     >
     <!-- 这个布局文件是用来布局菜单选项的 -->
     <!-- 菜单中图片的显示 -->
       <ImageView
           android:id="@+id/item_image"
           android:layout_centerHorizontal="true"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
       ></ImageView>
       <!-- 菜单中图片下面的文字 -->
     <TextView
         android:id="@+id/item_text"
         android:layout_below="@id/item_image"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_centerHorizontal="true"
     ></TextView>
 </RelativeLayout>

MainActivity.java

package com.b510;
 
 import java.util.ArrayList;
 import java.util.HashMap;
 
 import android.app.Activity;
 import android.os.Bundle;
 import android.view.Gravity;
 import android.view.KeyEvent;
 import android.view.View;
 import android.widget.GridView;
 import android.widget.SimpleAdapter;
 
 public class MainActivity extends Activity {
     /** 定义底部菜单选项 */
     GridView gv_buttom_menu;
 
     /** Called when the activity is first created. */
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.main);
     }
 
     /**
      * 当按键被按下的时候调用此方法
      */
     @Override
     public boolean onKeyDown(int keyCode, KeyEvent event) {
         if (keyCode == KeyEvent.KEYCODE_MENU) {
             if (gv_buttom_menu == null) {
                 loadButtomMenu();
             }
             // 默认情况下面是View.GONE
             if (gv_buttom_menu.getVisibility() == View.GONE) {
                 gv_buttom_menu.setVisibility(View.VISIBLE);// 菜单设置可见
             } else {
                 gv_buttom_menu.setVisibility(View.GONE);// 菜单设置不可见
             }
         }
 
         return super.onKeyDown(keyCode, event);
     }
 
     /**
      * 加载菜单
      */
     private void loadButtomMenu() {
         gv_buttom_menu = (GridView) findViewById(R.id.gv_buttom_menu);
         // 设置菜单选项的背景图片
         gv_buttom_menu.setBackgroundResource(R.drawable.channelgallery_bg);
         // 设置列数,为5列
         gv_buttom_menu.setNumColumns(5);
         // 设置位置
         gv_buttom_menu.setGravity(Gravity.CENTER);
         // 垂直间隔10
         gv_buttom_menu.setVerticalSpacing(10);
         // 水平间隔10
         gv_buttom_menu.setHorizontalSpacing(10);
         ArrayList data = new ArrayList();
         // 定义菜单选项的图片和文字
         // 增加菜单
         HashMap map = new HashMap();
         map.put("itemImage", R.drawable.menu_new_user);
         map.put("itemText", "增加");
         data.add(map);
         // 查找菜单
         map = new HashMap();
         map.put("itemImage", R.drawable.menu_search);
         map.put("itemText", "查找");
         data.add(map);
         // 删除菜单
         map = new HashMap();
         map.put("itemImage", R.drawable.menu_delete);
         map.put("itemText", "删除");
         data.add(map);
         // 菜单选项
         map = new HashMap();
         map.put("itemImage", R.drawable.controlbar_showtype_list);
         map.put("itemText", "菜单");
         data.add(map);
         // 退出菜单
         map = new HashMap();
         map.put("itemImage", R.drawable.menu_exit);
         map.put("itemText", "退出");
         data.add(map);
 
         // 设置SimpleAdapter
         // 1.Context 上下文
         // 2.data 是菜单中显示数据信息,包括图片和说明文字
         // 3.R.layout.item_ment 从data中取出数据map类型,用此布局文件来展示数据信息,包括图片和说明文字
         // 4,5 是将data和布局文件联系起来
         // 4 放入map中的key值
         // 5 按照map中的key值,把相应的数据传递过来,最后展现出来
         SimpleAdapter adapter = new SimpleAdapter(this, data,
                 R.layout.item_menu, new String[] { "itemImage", "itemText" },
                 new int[] { R.id.item_image, R.id.item_text });
 
         // gv_buttom_menu只是负责展现,他是没有数据的
         // adapter是把展现方式和数据联系在一起的一种工具,按照某种特定方式展现出来
         gv_buttom_menu.setAdapter(adapter);
 
     }
 }

加载中
0
ws猪小戒
ws猪小戒

menu可以自己加么

 

返回顶部
顶部