欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android實(shí)現(xiàn)選項(xiàng)菜單子菜單

 更新時(shí)間:2020年05月22日 11:24:40   作者:David_GodV  
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)選項(xiàng)菜單子菜單,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

Android之選項(xiàng)菜單和子菜單學(xué)習(xí)筆記,供大家參考,具體內(nèi)容如下

菜單簡(jiǎn)介:

菜單在桌面應(yīng)用中使用十分廣泛,幾乎所有的桌面應(yīng)用都有菜單。但是隨著手機(jī)的發(fā)展,對(duì)于手機(jī)桌面菜單的使用減少了很多,一般來(lái)說(shuō)我們把菜單都放到應(yīng)用中是實(shí)現(xiàn),桌面應(yīng)用的菜單與手機(jī)應(yīng)用的菜單的不同之處就是,桌面菜單一般可見,而手機(jī)不可見,通常需要用戶按下手機(jī)上的MENU鍵時(shí),才會(huì)彈出菜單的相關(guān)應(yīng)用,這里簡(jiǎn)單的來(lái)說(shuō)下菜的簡(jiǎn)單使用情況,通過一個(gè)小案例來(lái)講解。

一般菜單的創(chuàng)建有兩種方式,一種是在Java代碼中創(chuàng)建,一種是在XML中創(chuàng)建,本次主要講解XML中創(chuàng)建菜單的案例,因?yàn)橐话阃扑]使用的都是XML方式來(lái)創(chuàng)建菜單,相比Java代碼,他更便于維護(hù),可擴(kuò)展性強(qiáng),耦合度底。

案例實(shí)現(xiàn),用戶輸入文字,可以通過菜單選擇字體的大小,字體的顏色等

實(shí)現(xiàn)步驟:

1.首先在資源文件夾的menu下創(chuàng)建菜單xml

menu_main.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
 <item
 android:id="@+id/menuFont"
 android:title="字體大小">
 <menu>
  <group
  android:id="@+id/groupFont"
  android:checkableBehavior="none">
  <item
   android:id="@+id/font_10"
   android:title="10" />
  <item
   android:id="@+id/font_12"
   android:title="12" />
  <item
   android:id="@+id/font_14"
   android:title="14" />
  <item
   android:id="@+id/font_16"
   android:title="16" />
  <item
   android:id="@+id/font_18"
   android:title="18" />
  </group>
 </menu>
 </item>

 <item
 android:id="@+id/menuColor"
 android:icon="@mipmap/ic_launcher"
 android:title="字體顏色">
 <menu>
  <group
  android:id="@+id/groupColor"
  android:checkableBehavior="none">
  <item
   android:id="@+id/red"
   android:title="紅色" />
  <item
   android:id="@+id/blue"
   android:title="藍(lán)色" />
  <item
   android:id="@+id/green"
   android:title="綠色" />
  </group>
 </menu>
 </item>
</menu>

對(duì)于上面的xml文件中:

‘<'item …/>元素:定義菜單項(xiàng)。
‘<'group…/>子元素:將多個(gè)'<'item…/>定義的菜單項(xiàng)包裝成一個(gè)菜單組,'<'gruop…/>
子元素用于控制整組菜單的行為,該元素可指定如下的常用屬性:

  • checkableBehavior:指定該組菜單的選擇行為。可以指定為none(不可選)、 
  • all(多選)和single(單選)三個(gè)值
  • menuCategory:對(duì)菜單進(jìn)行分類,指定菜單的優(yōu)先級(jí)。有效值為container、 
  • system、secondary和alternative
  • visible:指定該組件菜單是否可見。
  • enable:指定該組菜單是否可用。

一般'<'item .../>元素用于定義菜單項(xiàng),'<'item .../>元素又可包含'<'menu.../>元素,位
于'<'item.../>元素內(nèi)部的'<'menu.../>就是他的子菜單。 

對(duì)于'<'item…/>元素可用指定如下常用屬性:

android:id: 為菜單項(xiàng)指定一個(gè)唯一的標(biāo)識(shí) 
android:title: 指定菜單項(xiàng)的標(biāo)題
android:icon: 指定菜單項(xiàng)的圖標(biāo)
android:alphabeticShortcut: 為菜單項(xiàng)指定字符快捷鍵 
android:numericShortcut: 為菜單項(xiàng)指定數(shù)字快捷鍵 
android:checkable: 設(shè)置該次啊單項(xiàng)是否可選 
android:checked: 設(shè)置該菜單項(xiàng)是否已選中 
android:visible: 設(shè)置該菜單項(xiàng)是否可見 
android:enable: 設(shè)置該菜單項(xiàng)是否可用

2.設(shè)置與菜單項(xiàng)關(guān)聯(lián)的Activity,在activity中重寫onCreateOptionsMenu(Menu menu)、
如果需要菜單項(xiàng)的監(jiān)聽事件,則需要重寫

onOptionsItemSelected(MenuItem item)

MainActivity.java

public class MainActivity extends AppCompatActivity {

private EditText mEdt;
private TextView mTv;


@Override
protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 mEdt = (EditText) findViewById(R.id.mEdt);
 mTv = (TextView) findViewById(R.id.mInput);
}

/**
 * 通過該方法添加菜單項(xiàng)或子菜單項(xiàng)
 * @param menu
 * @return
 */
@Override
public boolean onCreateOptionsMenu(Menu menu) {
 //方式一添加菜單布局
 MenuInflater inflater = new MenuInflater(this);
 //將解析到的布局添加到menu中
 inflater.inflate(R.menu.menu_main, menu);
 //方式二添加菜單布局
// getMenuInflater().inflate(R.menu.menu_main,menu);
 return super.onCreateOptionsMenu(menu);
}

/**
 * 設(shè)置菜單項(xiàng)的點(diǎn)擊事件
 * @param item
 * @return
 */
@Override
public boolean onOptionsItemSelected(MenuItem item) {

 switch (item.getItemId()) {
 case R.id.menuColor:
  Toast.makeText(this, "你選擇了修改顏色", Toast.LENGTH_SHORT).show();
  break;
 case R.id.menuFont:
  Toast.makeText(this, "你選擇了修改字體", Toast.LENGTH_SHORT).show();
  break;
 }
 return super.onOptionsItemSelected(item);
 }
}

基本的布局就是這樣了,看看整體布局

字體大小下的子菜單:

字體顏色下的子菜單:

3.開始實(shí)現(xiàn)功能了,這里我只貼上功能實(shí)現(xiàn)的方法:onOptionsItemSelected(MenuItem item)

@Override
public boolean onOptionsItemSelected(MenuItem item) {
 //先判斷點(diǎn)擊的是哪個(gè)id
 switch (item.getItemId()) {
 case R.id.font_10:
  mEdt.setTextSize(10 * 2);
  break;
 case R.id.font_12:
  mEdt.setTextSize(12 * 2);
  break;
 case R.id.font_14:
  mEdt.setTextSize(14 * 2);
  break;
 case R.id.font_16:
  mEdt.setTextSize(16 * 2);
  break;
 case R.id.font_18:
  mEdt.setTextSize(18 * 2);
  break;
 case R.id.blue:
  mEdt.setTextColor(Color.BLUE);
  break;
 case R.id.red:
  mEdt.setTextColor(Color.RED);
  break;
 case R.id.green:
  mEdt.setTextColor(Color.GREEN);
  break;
 }
 return super.onOptionsItemSelected(item);
}

運(yùn)行結(jié)果:

簡(jiǎn)單的菜單布局就這些了,對(duì)于菜單還有另一種方法,那就是上下文菜單,有關(guān)上下文菜單,下次介紹

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android超簡(jiǎn)單懸浮窗使用教程

    Android超簡(jiǎn)單懸浮窗使用教程

    這篇文章主要介紹了Android超簡(jiǎn)單懸浮窗使用教程,本文分步驟給大家介紹了使用前需要依賴庫(kù),給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-09-09
  • Android實(shí)現(xiàn)文件的保存與讀取功能示例

    Android實(shí)現(xiàn)文件的保存與讀取功能示例

    這篇文章主要介紹了Android實(shí)現(xiàn)文件的保存與讀取功能,涉及Android中文件操作函數(shù)getFileDir()和getCacheDir()的相關(guān)使用技巧,需要的朋友可以參考下
    2016-08-08
  • 關(guān)于Android輸入法彈窗bug的優(yōu)雅處理

    關(guān)于Android輸入法彈窗bug的優(yōu)雅處理

    在Android應(yīng)用中,當(dāng)跳轉(zhuǎn)到某個(gè)Activity時(shí),該Activity顯示頁(yè)面的EditText獲得焦點(diǎn),在某些機(jī)器中會(huì)觸發(fā)軟鍵盤的自動(dòng)彈出,這篇文章主要給大家介紹了關(guān)于Android輸入法彈窗bug的優(yōu)雅處理,需要的朋友可以參考下
    2021-10-10
  • Android PowerManagerService省電模式策略控制

    Android PowerManagerService省電模式策略控制

    這篇文章主要介紹了Android PowerManagerService省電模式策略控制,本文基于前兩篇文章的基礎(chǔ)介紹展開詳情,感興趣的小伙伴可以參考一下
    2022-08-08
  • Android清除工程中無(wú)用資源文件的兩種方法

    Android清除工程中無(wú)用資源文件的兩種方法

    這篇文章主要介紹了Android清除工程中無(wú)用資源文件的兩種方法,調(diào)用Android lint命令查找出無(wú)用資源,二是使用代碼自動(dòng)刪除無(wú)用的文件,感興趣的小伙伴們可以參考一下
    2016-08-08
  • flutter實(shí)現(xiàn)更新彈窗內(nèi)容例子(親測(cè)有效)

    flutter實(shí)現(xiàn)更新彈窗內(nèi)容例子(親測(cè)有效)

    Flutter是一款移動(dòng)應(yīng)用程序SDK,包含框架、widget和工具,這篇文章給大家介紹flutter實(shí)現(xiàn)更新彈窗內(nèi)容例子,親測(cè)可以使用,需要的朋友參考下吧
    2021-04-04
  • Android Cocos Creator游戲開發(fā)平臺(tái)打包優(yōu)化實(shí)現(xiàn)方案

    Android Cocos Creator游戲開發(fā)平臺(tái)打包優(yōu)化實(shí)現(xiàn)方案

    Cocos Creator是一款輕量、高效、免費(fèi)開源的跨平臺(tái)游戲引擎,同時(shí)也是實(shí)時(shí)3D內(nèi)容創(chuàng)作平臺(tái),不僅支持2D、3D的游戲開發(fā),同時(shí)在HMI、IoT、XR、虛擬人偶等領(lǐng)域,均可提供一套完善的行業(yè)解決方案
    2022-11-11
  • IDEA打包jar-解決找不到或無(wú)法加載主類 main的問題

    IDEA打包jar-解決找不到或無(wú)法加載主類 main的問題

    這篇文章主要介紹了IDEA打包jar-解決找不到或無(wú)法加載主類 main的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2020-08-08
  • Android利用控制點(diǎn)的拖拽畫一個(gè)粽子

    Android利用控制點(diǎn)的拖拽畫一個(gè)粽子

    端午節(jié)就要到了,本文我們將利用控制點(diǎn)的拖拽式移動(dòng),動(dòng)態(tài)調(diào)整位置來(lái)調(diào)整繪制一個(gè)簡(jiǎn)單的粽子圖形,感興趣的小伙伴可以跟隨小編一起動(dòng)手嘗試一下
    2022-05-05
  • Android程序版本更新之通知欄更新下載安裝

    Android程序版本更新之通知欄更新下載安裝

    Android應(yīng)用檢查版本更新后,在通知欄下載,更新下載進(jìn)度,下載完成自動(dòng)安裝。接下來(lái)通過本文給大家介紹Android程序版本更新之通知欄更新下載安裝的相關(guān)知識(shí),需要的朋友參考下吧
    2016-03-03

最新評(píng)論