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 }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM