您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了Android如何實現(xiàn)選項菜單子菜單,內(nèi)容簡而易懂,希望大家可以學習一下,學習完之后肯定會有收獲的,下面讓小編帶大家一起來看看吧。
菜單簡介:
菜單在桌面應用中使用十分廣泛,幾乎所有的桌面應用都有菜單。但是隨著手機的發(fā)展,對于手機桌面菜單的使用減少了很多,一般來說我們把菜單都放到應用中是實現(xiàn),桌面應用的菜單與手機應用的菜單的不同之處就是,桌面菜單一般可見,而手機不可見,通常需要用戶按下手機上的MENU鍵時,才會彈出菜單的相關應用,這里簡單的來說下菜的簡單使用情況,通過一個小案例來講解。
一般菜單的創(chuàng)建有兩種方式,一種是在Java代碼中創(chuàng)建,一種是在XML中創(chuàng)建,本次主要講解XML中創(chuàng)建菜單的案例,因為一般推薦使用的都是XML方式來創(chuàng)建菜單,相比Java代碼,他更便于維護,可擴展性強,耦合度底。
案例實現(xiàn),用戶輸入文字,可以通過菜單選擇字體的大小,字體的顏色等
實現(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="藍色" /> <item android:id="@+id/green" android:title="綠色" /> </group> </menu> </item> </menu>
對于上面的xml文件中:
‘<'item …/>元素:定義菜單項。
‘<'group…/>子元素:將多個'<'item…/>定義的菜單項包裝成一個菜單組,'<'gruop…/>
子元素用于控制整組菜單的行為,該元素可指定如下的常用屬性:
一般'<'item .../>元素用于定義菜單項,'<'item .../>元素又可包含'<'menu.../>元素,位
于'<'item.../>元素內(nèi)部的'<'menu.../>就是他的子菜單。
對于'<'item…/>元素可用指定如下常用屬性:
android:id: 為菜單項指定一個唯一的標識
android:title: 指定菜單項的標題
android:icon: 指定菜單項的圖標
android:alphabeticShortcut: 為菜單項指定字符快捷鍵
android:numericShortcut: 為菜單項指定數(shù)字快捷鍵
android:checkable: 設置該次啊單項是否可選
android:checked: 設置該菜單項是否已選中
android:visible: 設置該菜單項是否可見
android:enable: 設置該菜單項是否可用
2.設置與菜單項關聯(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; @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); } /** * 通過該方法添加菜單項或子菜單項 * @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); } /** * 設置菜單項的點擊事件 * @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.開始實現(xiàn)功能了,這里我只貼上功能實現(xiàn)的方法:onOptionsItemSelected(MenuItem item)
@Override public 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); }
運行結果:
以上就是關于Android如何實現(xiàn)選項菜單子菜單的內(nèi)容,如果你們有學習到知識或者技能,可以把它分享出去讓更多的人看到。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。