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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

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

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

選擇菜單(OptionsMenu)

第一種使用方式:

在res目錄下面建立一個(gè)名稱(chēng)是menu的文件夾

在menu下面建立一個(gè)xml文件(默認(rèn)就是menu的類(lèi)型)

在建立的這個(gè)xml文件夾中添加菜單的選項(xiàng),xml文件中有很多屬性

android:orderInCategory = "2" //表示當(dāng)前的item在整個(gè)item中所占的位置,數(shù)字越小越靠前

android:title="選項(xiàng)二" //確定的是那個(gè)選項(xiàng)的內(nèi)容

android:id="@+id/select_02" //可以跟當(dāng)前的選項(xiàng)整一個(gè)id 方便區(qū)分點(diǎn)擊的是誰(shuí)

android:icon="@drawable/ic_launcher" //給這個(gè)選項(xiàng)整了一個(gè)圖標(biāo)

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

在Activity里面重寫(xiě)onCreateOptionsMenu方法

通過(guò)getMenuInflater()的布局加載器來(lái)加載文件

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

第二種方式

在Activity默認(rèn)重寫(xiě)的onCreateOptionsMenu方法中通過(guò)menu對(duì)象的add方法來(lái)添加item的值。

menu.add(" "); //添加選項(xiàng)的內(nèi)容

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

在item里面添加子菜單

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

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

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

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

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

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

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

菜單事件的監(jiān)聽(tīng)

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

第二種玩法:必須要通過(guò)Java代碼創(chuàng)建menu才可以

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

menuItem.setOnMenuItemClickListener(MenuItem item)

選項(xiàng)菜單依賴的對(duì)象是Activity,不能依賴View

上下文菜單

上下文菜單依賴的對(duì)象就是View.也就是說(shuō)我們可以觸發(fā)某一個(gè)控件從而來(lái)顯示一個(gè)菜單選項(xiàng)。

使用方式:

和選項(xiàng)菜單一樣在menu文件夾下建立一個(gè)Android.xml file來(lái)進(jìn)行配置就可以了

重寫(xiě)Activity里面的onCreateContextMenu方法

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

注意:上下文菜單的事件觸發(fā)是一個(gè)長(zhǎng)按事件

上下文菜單的事件處理 和菜單事件的監(jiān)聽(tīng)一樣

PopupMenu的使用

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

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

popuMenu.setOnMenuItemClickListener(new MyOnMenuListener()); //設(shè)置點(diǎn)擊事件

popuMenu.setOnDismissListener(new MyOnDissLisener()); //設(shè)置消失的時(shí)候的監(jiān)聽(tīng)器

popuMenu.show(); //顯示PopuMenu

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

ContentMenu和PopuMenu的區(qū)別:

上下文菜單只能綁定一個(gè)View來(lái)進(jìn)行顯示

PopuMenu能夠同時(shí)綁定多個(gè)View來(lái)進(jìn)行顯示

PopuWindow的使用

// 1、初始化PopuWindow對(duì)象

PopuWindow popuWindow = new PopuWindow(PopuWindowActivity.this);

// 2、通過(guò)PopuWindow對(duì)象來(lái)對(duì)PopuWindow對(duì)象添加相應(yīng)的設(shè)置

popupWindow.setHeight(LayoutParams.WRAP_CONTENT);

popupWindow.setWidth(LayoutParams.WRAP_CONTENT);

popupWindow.setBackgroundDrawable(new ColorDrawable(0x00000000)); // 用來(lái)解決彈出框不消失的問(wèn)題,一般不需要設(shè)置就會(huì)消失

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

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

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

// 3、通過(guò)布局加載器的對(duì)象將xml文件轉(zhuǎn)換成View對(duì)象

LayoutInflater inflater = getLayoutInflater();

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

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

popupWindow.setContentView(view);

// 5、確認(rèn)這個(gè)PopuWindow顯示的位置

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

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

popuWindow.dismiss();

對(duì)話框的寫(xiě)法

// 1、初始化對(duì)話框的Builder

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

// 2、通過(guò)Builder來(lái)設(shè)置相應(yīng)的信息

builder.setTitle("喜歡與否"); //設(shè)置的是那個(gè)標(biāo)題

builder.setIcon(R.drawable.ic_launcher); //設(shè)置的是那個(gè)圖標(biāo)

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

// 3、顯示出來(lái)

builder.show();

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。