您好,登錄后才能下訂單哦!
本篇內容主要講解“Android里面怎么用XML定義菜單資源”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Android里面怎么用XML定義菜單資源”吧!
Android里面也可用XML定義菜單資源,菜單分兩種,一種是OptionMenu(點系統"Menu"鍵出來),一種是ContextMenu
下面定義兩種菜單XML到res\menu文件夾下
my_menu為OptionMenu
<?xml version="1。0" encoding="utf-8"?> <menu xmlns:android="http://schemas。android。com/apk/res/android" > <item android:title="@string/font_size" android:icon="@drawable/font"> <menu> <!-- 定義一組單選菜單項 --> <group android:checkableBehavior="single"> <!-- 定義多個菜單項 --> <item android:id="@+id/font_10" android:title="@string/font_10"/> <item android:id="@+id/font_12" android:title="@string/font_12"/> <item android:id="@+id/font_14" android:title="@string/font_14"/> <item android:id="@+id/font_16" android:title="@string/font_16"/> <item android:id="@+id/font_18" android:title="@string/font_18"/> </group> </menu> </item> <item> </item> <!-- 定義一個普通菜單項 --> <item android:id="@+id/plain_item" android:title="@string/plain_item"> </item> <item android:id="@string/font_color" android:title="@drawable/color"> <menu> <!-- 定義一組普通的菜單項 --> <group> <!-- 定義3個菜單項 --> <item android:id="@+id/red_font" android:title="@string/red_title"/> <item android:id="@+id/green_font" android:title="@string/green_title"/> <item android:id="@+id/blue_font" android:title="@string/blue_title"/> </group> </menu> </item> </menu>
context.xml為ContextMenu
<?xml version="1。0" encoding="utf-8"?> <menu xmlns:android="http://schemas。android。com/apk/res/android" > <!-- 定義一組單選菜單項目 --> <group android:checkableBehavior="single"> <!-- 定義三個菜單項 --> <item android:id="@+id/red" android:title="@string/red_title" android:alphabeticShortcut="r"></item> <item android:id="@+id/green" android:title="@string/green_title" android:alphabeticShortcut="g"></item> <item android:id="@+id/blue" android:title="@string/blue_title" android:alphabeticShortcut="b"></item> </group> </menu>
定義兩個res\value下的xml,用來指定顏色,字體
<?xml version="1。0" encoding="UTF-8"?> <resources> <color name="red">#ff0000</color> <color name="green">#00ff00</color> <color name="blue">#0000ff</color> </resources>
strings.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, ContextMenuTest!</string> <string name="app_name">上下文菜單</string> <string name="red_title">紅色</string> <string name="blue_title">藍色</string> <string name="green_title">綠色</string> <string name="font_size">字體大小</string> <string name="font_color">字體顏色</string> <string name="plain_item">普通菜單項</string> <string name="font_10">10號字體</string> <string name="font_12">12號字體</string> <string name="font_14">14號字體</string> <string name="font_16">16號字體</string> <string name="font_18">18號字體</string> </resources>
下面代碼將實現兩種菜單
package WangLi.Resource.MenuResTest; import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.view.ContextMenu; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.widget.TextView; import android.widget.Toast; public class MenuResTest extends Activity { /** Called when the activity is first created. */ private TextView txt; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); txt = (TextView)findViewById(R.id.txt); //為文本框注冊上下文菜單 registerForContextMenu(txt); } public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflator = new MenuInflater(this); //裝填R.menu.my_menu對應的菜單,并添加到menu中 inflator.inflate(R.menu.my_menu, menu); return super.onCreateOptionsMenu(menu); } //每次創建上下文菜單時都會觸發該方法 public void onCreateContextMenu(ContextMenu menu,View source, ContextMenu.ContextMenuInfo menuInfo) { MenuInflater inflator = new MenuInflater(this); //裝填R.menu.context對應的菜單,并添加到menu中 inflator.inflate(R.menu.context, menu); menu.setHeaderIcon(R.drawable.tools); menu.setHeaderTitle("請選擇背景色"); } //上下文菜單中菜單項被單擊時觸發該方法 public boolean onContextItemSelected(MenuItem mi) { switch(mi.getItemId()) { case R.id.red: mi.setChecked(true); txt.setBackgroundColor(Color.RED); break; case R.id.green: mi.setChecked(true); txt.setBackgroundColor(Color.GREEN); break; case R.id.blue: mi.setChecked(true); txt.setBackgroundColor(Color.BLUE); break; } return true; } //菜單項被單擊后的回調方法 public boolean onOptionsItemSelected(MenuItem mi) { //判斷單擊的是哪個菜單項,并針對性地做出響應 switch(mi.getItemId()) { case R.id.font_10: txt.setTextSize(10*2); break; case R.id.font_12: txt.setTextSize(12*2); break; case R.id.font_14: txt.setTextSize(14*2); break; case R.id.font_16: txt.setTextSize(16*2); break; case R.id.font_18: txt.setTextSize(18*2); break; case R.id.red_font: txt.setTextColor(Color.RED); mi.setChecked(true); break; case R.id.green_font: txt.setTextColor(Color.GREEN); mi.setChecked(true); break; case R.id.blue_font: txt.setTextColor(Color.BLUE); mi.setChecked(true); break; case R.id.plain_item: Toast toast = Toast.makeText(MenuResTest.this, "您單擊了普通項菜單", Toast.LENGTH_SHORT); toast.show(); break; } return true; } }
下面是程序運行效果圖,剛啟動時是一個TextView
點擊后,在手機屏幕下方出現OptionMenu
點擊字體大小或普通菜單項,出現子菜單
選擇就可改變TextView的字體
如下點擊"普通菜單項",會出現一個Toast提示,過幾秒就會消失
那么怎么彈出ContextMenu呢,就是對著TextView長按就可以了
選擇后,背景色就改變了
到此,相信大家對“Android里面怎么用XML定義菜單資源”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。