日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android菜单和对话栏,Android回顾--(十一) 菜单和对话框

發布時間:2023/12/4 Android 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android菜单和对话栏,Android回顾--(十一) 菜单和对话框 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

選擇菜單(OptionsMenu)

第一種使用方式:

在res目錄下面建立一個名稱是menu的文件夾

在menu下面建立一個xml文件(默認就是menu的類型)

在建立的這個xml文件夾中添加菜單的選項,xml文件中有很多屬性

android:orderInCategory = "2" //表示當前的item在整個item中所占的位置,數字越小越靠前

android:title="選項二" //確定的是那個選項的內容

android:id="@+id/select_02" //可以跟當前的選項整一個id 方便區分點擊的是誰

android:icon="@drawable/ic_launcher" //給這個選項整了一個圖標

android:showAsAction = "always" //表示總是將圖標顯示在標題欄上的右邊,不管大小都要顯示

在Activity里面重寫onCreateOptionsMenu方法

通過getMenuInflater()的布局加載器來加載文件

getMenuInflater().inflate(R.menu.option_menu_01, menu) //后面的第二個menu參數表示的意思是將前面的menu布局加載到后面的menu對象中去

第二種方式

在Activity默認重寫的onCreateOptionsMenu方法中通過menu對象的add方法來添加item的值。

menu.add(" "); //添加選項的內容

menu.add(groupId,ItemId,orderInCategory,title); //第一個參數:表示的是組的id 第二個表示的是 item的Id 第三個參數:Item的排列順序 第四個參數:當前Item的內容

在item里面添加子菜單

menu.addSubMenu(groupId,ItemId,orderInCateGory,title);//注意,這個方法只是獲取添加子菜單的對象,需要拿到對象之后進行添加。

SubMenu subMenu = menu.add("設置");

subMenu.add(1,1,1,"身高設置");

subMenu.add(1,2,1,"體重設置");

SubMenu subMenu1 = menu.add("中國");

subMenu1.add(2,1,1,"四川");

subMenu1.add(2,2,1,"成都");

菜單事件的監聽

第一種玩法:直接重寫onOptionsItemSelected(MenuItem item)

第二種玩法:必須要通過Java代碼創建menu才可以

menu.add(); 返回的是menuItem對象

menuItem.setOnMenuItemClickListener(MenuItem item)

選項菜單依賴的對象是Activity,不能依賴View

上下文菜單

上下文菜單依賴的對象就是View.也就是說我們可以觸發某一個控件從而來顯示一個菜單選項。

使用方式:

和選項菜單一樣在menu文件夾下建立一個Android.xml file來進行配置就可以了

重寫Activity里面的onCreateContextMenu方法

注冊在控件上面彈出一個上下文菜單registerForContextMenu(button) 后面的參數表示的是綁定的View

注意:上下文菜單的事件觸發是一個長按事件

上下文菜單的事件處理 和菜單事件的監聽一樣

PopupMenu的使用

PopuMenu popuMenu = new PopuMenu(PopuViewActivity.this,v); //初始化PopuMenu對象,第二個參數表示將PopuMenu綁定在這個控件上面

popuMenu.getMenuInflater().inflate(R.menu.option,popuMenu.getMenu()); // 綁定布局的對象

popuMenu.setOnMenuItemClickListener(new MyOnMenuListener()); //設置點擊事件

popuMenu.setOnDismissListener(new MyOnDissLisener()); //設置消失的時候的監聽器

popuMenu.show(); //顯示PopuMenu

popuMenu.dismiss(); // 取消顯示popuMenu

ContentMenu和PopuMenu的區別:

上下文菜單只能綁定一個View來進行顯示

PopuMenu能夠同時綁定多個View來進行顯示

PopuWindow的使用

// 1、初始化PopuWindow對象

PopuWindow popuWindow = new PopuWindow(PopuWindowActivity.this);

// 2、通過PopuWindow對象來對PopuWindow對象添加相應的設置

popupWindow.setHeight(LayoutParams.WRAP_CONTENT);

popupWindow.setWidth(LayoutParams.WRAP_CONTENT);

popupWindow.setBackgroundDrawable(new ColorDrawable(0x00000000)); // 用來解決彈出框不消失的問題,一般不需要設置就會消失

popupWindow.setFocusable(true); // 獲取焦點

popupWindow.setOutsideTouchable(true); // 表示點擊彈出框以外的區域是否消失,如果為true就消失,false就不消失

popupWindow.setTouchable(true); //一般不設置,采用默認的就OK了

// 3、通過布局加載器的對象將xml文件轉換成View對象

LayoutInflater inflater = getLayoutInflater();

inflater.inflate(R.layout.popuwindow_list,null);

// 4、將獲取到的View添加到PopuWindow中

popupWindow.setContentView(view);

// 5、確認這個PopuWindow顯示的位置

popupWindow.showAsDropDown(v); // 這個方法在使用的時候,需要多加注意。popupwindow會在button的下面貼button的底部展示出來,但是當button底部到屏幕底部的高度小于popupwindow的高度時,popupwindow就會找button的父view作為參考點,如果也沒有符合的parent view ,popupwindow就會使自己的底部貼button的頂部展示

popupWindow.showAtLocation(getWindow().getDecorView(),Gravity.NO_GRAVITY,50,0);

popuWindow.dismiss();

對話框的寫法

// 1、初始化對話框的Builder

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

// 2、通過Builder來設置相應的信息

builder.setTitle("喜歡與否"); //設置的是那個標題

builder.setIcon(R.drawable.ic_launcher); //設置的是那個圖標

builder.setMessage("比是否喜歡我?"); //設置的是那個信息

// 3、顯示出來

builder.show();

總結

以上是生活随笔為你收集整理的android菜单和对话栏,Android回顾--(十一) 菜单和对话框的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。