Android菜單

 android提供了三種菜單類型,分別爲options menu,context menu,sub menu。options menu就是通過按home鍵來顯示,context menu需要在view上按上2s後顯示。兩種menu都有可以加入子菜單,子菜單不能再不能嵌套子菜單。

options menu最多只能在屏幕最下面顯示6個菜單選項,成爲icon menu,icon menu不能有checkable選項。多餘6的會以more icon menu來調出,成爲expanded menu。options menu通過activity的onCreateOptionsMenu來生成,只會在menu第一次生成時調用。任何想改變options menu的想法只能在onPrepareOptionsMenu來實現,這個函數會在menu顯示前調用。onOptionsItemSelected 處理選中的菜單項。

context menu是跟某個具體的view綁定在一起,在activity調用registerForContextMenu來爲某個view註冊context menu。context menu在顯示前都會調用onCreateContextMenu來生成menu。onContextItemSelected選中的菜單項。

android還提供了對菜單項進行分組的功能,可以把相似功能的菜單項分成同一個組,這樣就可以通過調用setGroupCheckable,setGroupEnabled,setGroupVisible來設置菜單屬性,而無須單獨設置。

響應菜單項單擊事件

3種方式

menuOptionsSelected

menuItemSelected

onMenuItemClick

動態添加、修改和刪除菜單項

菜單項的增刪改查

增:add:添加菜單項

 addSubMenu:表示向這個菜單項中添加子菜單項

刪:removeItem:刪除指定的那個菜單項

removeGroup:刪除指定的某組菜單項

改:

選項菜單:onPrepareOptionsMenu()——> MenuItem->setXXX()

上下文菜單:onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {} 方法在每次調用上下文菜單時都會被調用一次

子菜單的創建

Xml創建

Menu.getMenuInflater ().inflater(R.menu.submenu, submenu);

 

動態創建

Menu submenu = Menu.addSubMenu(x, x, x, x)

submenu.add()

submenu.add()

main_menu.addSubMenu(x,x,x,x);

帶單選或複選的子菜單

SubMenu submenu = menu.addSubMenu(組號,添加的菜單項 , 在該組中的放置位置,顯示的菜單名);

submenu.setGroupCheckable(組號,是否可選,是否爲單選);

sb.getItem(0).setCheckable(設置是否可選);

sb.getItem(0).setChecked(設置是否默認選中);

AlertDialog的常見方法

創建AlertDialog對象的方法:

創建一個AlertDialog的Builder對象,利用該Builder對象可使用多個方法,分別用於設定對話框的標題,信息,按鈕等

AlertDialog.Builder builder = new Builder(類名);

builder.setTitle(標題):設置對話框的標題

builder.setMessage(對話框信息):設置對話框顯示信息

setItems(int itemsld,DialogInterface.OnclickListener listener):創建普通列表對話框

setMultiChoiceItems(CharSequence[] items,Boolean[] checkedItems,DialogInterface.OnMulti ChoiceClickListener listener):創建多選列表對話框

setSingleChoiceItems(CharSequence[] items,int checkedItem,DialogInterface.OnMulti ChoiceClickListener listener):創建單選列表對話框

setAdapter(ListAdapter adapter,DialogInterface.OnClickListener listener):創建根據ListAdapter提供列表項的列表對話框

builder.setPositiveButton(按鈕名, 監聽器及其方法()):創建AlertDialog的按鈕

AlertDialog的監聽器方法

public void onClick(DialogInterface dialog, int which)該Dialog的監聽器方法,監聽所有的dialog對象,並且對它們進行排號

切記:

使用dialog時一定要記得調用builder.create().show();方法,否則,該AlertDialog會不顯示

 

一個AlertDialog的實例方法:

AlertDialog.Builder builder = new Builder(RActivity.this);

 

     builder.setTitle("導入/導出聯繫人");

     builder.setItems(new String[] { sub5_01, sub5_02, sub5_03, sub5_04 },

         new OnClickListener() {

 

           public void onClick(DialogInterface dialog, int which) {

 

            }

 

         });

 

     // 註冊使用對話框裏的監聽器

     builder.setNegativeButton("取消",

         new android.content.DialogInterface.OnClickListener() {

 

            @Override

           public void onClick(DialogInterface dialog, int which) {

              // TODO Auto-generated method stub

              dialog.dismiss();

            }

         });

     // 註冊顯示系統對話框

     builder.create().show();

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章