溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Android中怎么實現(xiàn)選項菜單子菜單

發(fā)布時間:2021-08-09 16:59:15 來源:億速云 閱讀:168 作者:Leah 欄目:編程語言

Android中怎么實現(xiàn)選項菜單子菜單,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(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>

對于上面的xml文件中:

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

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

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

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

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

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

onOptionsItemSelected(MenuItem item)

MainActivity.java

public class MainActivity extends AppCompatActivity {private EditText mEdt;private TextView mTv;@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mEdt = (EditText) findViewById(R.id.mEdt); mTv = (TextView) findViewById(R.id.mInput);}/** * 通過該方法添加菜單項或子菜單項 * @param menu * @return */@Overridepublic 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è)置菜單項的點擊事件 * @param item * @return */@Overridepublic 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.開始實現(xiàn)功能了,這里我只貼上功能實現(xiàn)的方法:onOptionsItemSelected(MenuItem item)

@Overridepublic boolean onOptionsItemSelected(MenuItem item) { //先判斷點擊的是哪個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);}

看完上述內(nèi)容,你們掌握Android中怎么實現(xiàn)選項菜單子菜單的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI