掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
菜單開發(fā)也是程序員經(jīng)常需要關(guān)注的,如何使菜單變得更加方便用戶使用是每一個開發(fā)者都要面臨的實(shí)際問題,今天給Android開發(fā)者介紹一下如何開發(fā)出像UC瀏覽器一樣的菜單。使用AlertDialog生成菜單,利用setView()方法設(shè)置菜單視圖。

成都創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營銷、網(wǎng)站重做改版、永寧網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、成都商城網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為永寧等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
布局如下:
1、菜單布局
利用GridView
<
?xml version
=
"
1.0
"
encoding
=
"
utf-8
"
?
>
<
LinearLayout xmlns:android
=
"
http://schemas.android.com/apk/res/android
"
android:layout_width
=
"
wrap_content
"
android:layout_height
=
"
wrap_content
"
android:orientation
=
"
vertical
"
>
<
GridView android:id
=
"
@+id/menu
"
android:layout_width
=
"
fill_parent
"
android:layout_height
=
"
fill_parent
"
android:numColumns
=
"
2
"
android:verticalSpacing
=
"
5dip
"
android:horizontalSpacing
=
"
5dip
"
android:stretchMode
=
"
columnWidth
"
android:gravity
=
"
center
"
>
GridView
>
LinearLayout
>
2、每一個item的布局
<
?xml version
=
"
1.0
"
encoding
=
"
utf-8
"
?
>
<
RelativeLayout xmlns:android
=
"
http://schemas.android.com/apk/res/android
"
android:id
=
"
@+id/RelativeLayout_Item
"
android:layout_width
=
"
wrap_content
"
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:layout_below
=
"
@id/item_image
"
android:id
=
"
@+id/item_text
"
android:layout_centerHorizontal
=
"
true
"
android:layout_width
=
"
wrap_content
"
android:layout_height
=
"
wrap_content
"
android:text
=
"
選項
"
>
TextView
>
RelativeLayout
>
主程序代碼如下:
代碼比較簡單,注釋非常詳細(xì)
package com.cloay.down.utils;
import java.util.ArrayList;
import java.util.HashMap;
import com.cloay.down.R;
import android.app.AlertDialog;
import android.content.Context;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.SimpleAdapter;
/**
*
菜單工具類
*
MenuUtil.java
*
@author cloay
*
2011
-
10
-
25
*/
public
class MenuUtil {
private
static AlertDialog menuDialog;
//
menu菜單Dialog
private
static GridView menuGrid;
/**
菜單圖片
**/
static
int
[] menu_image_array
=
{ R.drawable.menu_open_in_background, R.drawable.menu_redownload, R.drawable.menu_detail, R.drawable.menu_delete };
/**
菜單文字
**/
static
String
[] menu_name_array
=
{
"
打開
"
,
"
重新下載
"
,
"
詳細(xì)
"
,
"
刪除
"
};
public
static void ShowMenuDialog(final Context context){
View menuView
=
View.inflate(context, R.layout.menu,
null
);
menuDialog
=
new
AlertDialog.Builder(context)
.setView(menuView)
.create();
menuDialog.show();
menuGrid
=
(GridView) menuView.findViewById(R.id.menu);
menuGrid.setAdapter(getMenuAdapter(context, menu_name_array, menu_image_array));
menuGrid.setOnItemClickListener(
new
OnItemClickListener() {
//
監(jiān)聽menu按鈕事件
@Override
public
void onItemClick(AdapterView
<
?
>
parent, View view,
int
position,
long
id) {
switch(position){
case
0
:
//
open file
break;
case
1
:
//
redownload 重新下載
break;
case
2
:
//
file details
break;
case
3
:
//
delete file
break;
}
}
});
}
/**
*
為menuGrid設(shè)置Adapter
*
@param context
*
@param menuNameArray
*
@param imageResourceArray
*
@return
*/
private
static SimpleAdapter getMenuAdapter(Context context,
String
[] menuNameArray,
int
[] imageResourceArray) {
ArrayList
<
HashMap
<
String
,
Object
>>
data
=
new
ArrayList
<
HashMap
<
String
,
Object
>>
();
for
(
int
i
=
0
; i
<
menuNameArray.length; i
++
) {
HashMap
<
String
,
Object
>
map
=
new
HashMap
<
String
,
Object
>
();
map.put(
"
itemImage
"
, imageResourceArray[i]);
map.put(
"
itemText
"
, menuNameArray[i]);
data.add(map);
}
SimpleAdapter simperAdapter
=
new
SimpleAdapter(context, data,
R.layout.item_menu,
new
String
[] {
"
itemImage
"
,
"
itemText
"
},
new
int
[] { R.id.item_image, R.id.item_text });
return simperAdapter;
}
}

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流