自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Android里面用XML定義菜單資源

移動(dòng)開發(fā) Android
本文介紹了Android里面如何用XML定義菜單資源,菜單分兩種,一種是OptionMenu(點(diǎn)系統(tǒng)"Menu"鍵出來),一種是ContextMenu。

Android里面也可用XML定義菜單資源,菜單分兩種,一種是OptionMenu(點(diǎn)系統(tǒng)"Menu"鍵出來),一種是ContextMenu
下面定義兩種菜單XML到res\menu文件夾下
my_menu為OptionMenu

  1. <?xml version="1。0" encoding="utf-8"?> 
  2.  <menu xmlns:android="http://schemas。android。com/apk/res/android" > 
  3.  <item android:title="@string/font_size" 
  4.  android:icon="@drawable/font"
  5.  <menu> 
  6.  <!--  定義一組單選菜單項(xiàng) --> 
  7.  <group android:checkableBehavior="single"
  8.  <!-- 定義多個(gè)菜單項(xiàng) --> 
  9.  <item android:id="@+id/font_10" 
  10.  android:title="@string/font_10"/> 
  11.  <item android:id="@+id/font_12" 
  12.  android:title="@string/font_12"/> 
  13.  <item android:id="@+id/font_14" 
  14.  android:title="@string/font_14"/> 
  15.  <item android:id="@+id/font_16" 
  16.  android:title="@string/font_16"/> 
  17.  <item android:id="@+id/font_18" 
  18.  android:title="@string/font_18"/> 
  19.  </group> 
  20.  </menu> 
  21.  </item> 
  22.  <item> 
  23.  </item> 
  24.  <!-- 定義一個(gè)普通菜單項(xiàng) --> 
  25.  <item android:id="@+id/plain_item" 
  26.  android:title="@string/plain_item"
  27.  </item> 
  28.  <item android:id="@string/font_color" 
  29.  android:title="@drawable/color"
  30.  <menu> 
  31.  <!-- 定義一組普通的菜單項(xiàng) --> 
  32.  <group> 
  33.  <!-- 定義3個(gè)菜單項(xiàng) --> 
  34.  <item android:id="@+id/red_font" 
  35.  android:title="@string/red_title"/> 
  36.  <item android:id="@+id/green_font" 
  37.  android:title="@string/green_title"/> 
  38.  <item android:id="@+id/blue_font" 
  39.  android:title="@string/blue_title"/> 
  40.  </group> 
  41.  </menu> 
  42.  </item> 
  43.  </menu> 

context.xml為ContextMenu

  1. <?xml version="1。0" encoding="utf-8"?> 
  2. <menu xmlns:android="http://schemas。android。com/apk/res/android" > 
  3. <!-- 定義一組單選菜單項(xiàng)目 --> 
  4. <group android:checkableBehavior="single"
  5. <!-- 定義三個(gè)菜單項(xiàng) --> 
  6. <item android:id="@+id/red" 
  7. android:title="@string/red_title" 
  8. android:alphabeticShortcut="r"></item> 
  9. <item android:id="@+id/green" 
  10. android:title="@string/green_title" 
  11. android:alphabeticShortcut="g"></item> 
  12. <item android:id="@+id/blue" 
  13. android:title="@string/blue_title" 
  14. android:alphabeticShortcut="b"></item> 
  15. </group> 
  16. </menu> 

定義兩個(gè)res\value下的xml,用來指定顏色,字體

  1. <?xml version="1。0" encoding="UTF-8"?> 
  2. <resources> 
  3. <color name="red">#ff0000</color> 
  4. <color name="green">#00ff00</color> 
  5. <color name="blue">#0000ff</color> 
  6. </resources> 

strings.xml

  1. <?xml version="1.0" encoding="utf-8"?>   
  2. <resources>   
  3.     <string name="hello">Hello World, ContextMenuTest!</string>   
  4.     <string name="app_name">上下文菜單</string>   
  5.     <string name="red_title">紅色</string>   
  6.     <string name="blue_title">藍(lán)色</string>   
  7.     <string name="green_title">綠色</string>   
  8.     <string name="font_size">字體大小</string>   
  9.     <string name="font_color">字體顏色</string>       
  10.     <string name="plain_item">普通菜單項(xiàng)</string>   
  11.     <string name="font_10">10號(hào)字體</string>      
  12.     <string name="font_12">12號(hào)字體</string>      
  13.     <string name="font_14">14號(hào)字體</string>      
  14.     <string name="font_16">16號(hào)字體</string>      
  15.     <string name="font_18">18號(hào)字體</string>      
  16. </resources>   

下面代碼將實(shí)現(xiàn)兩種菜單

  1. package WangLi.Resource.MenuResTest;   
  2. import android.app.Activity;   
  3. import android.graphics.Color;   
  4. import android.os.Bundle;   
  5. import android.view.ContextMenu;   
  6. import android.view.Menu;   
  7. import android.view.MenuInflater;   
  8. import android.view.MenuItem;   
  9. import android.view.View;   
  10. import android.widget.TextView;   
  11. import android.widget.Toast;   
  12. public class MenuResTest extends Activity {   
  13.     /** Called when the activity is first created. */   
  14.     private TextView txt;   
  15.     @Override   
  16.     public void onCreate(Bundle savedInstanceState) {   
  17.         super.onCreate(savedInstanceState);   
  18.         setContentView(R.layout.main);   
  19.         txt = (TextView)findViewById(R.id.txt);   
  20.         //為文本框注冊(cè)上下文菜單    
  21.         registerForContextMenu(txt);   
  22.     }   
  23.     public boolean onCreateOptionsMenu(Menu menu)   
  24.     {   
  25.         MenuInflater inflator = new MenuInflater(this);   
  26.         //裝填R.menu.my_menu對(duì)應(yīng)的菜單,并添加到menu中    
  27.         inflator.inflate(R.menu.my_menu, menu);   
  28.         return super.onCreateOptionsMenu(menu);   
  29.     }   
  30.     //每次創(chuàng)建上下文菜單時(shí)都會(huì)觸發(fā)該方法    
  31.     public void onCreateContextMenu(ContextMenu menu,View source,   
  32.             ContextMenu.ContextMenuInfo menuInfo)   
  33.     {   
  34.         MenuInflater inflator = new MenuInflater(this);   
  35.         //裝填R.menu.context對(duì)應(yīng)的菜單,并添加到menu中    
  36.         inflator.inflate(R.menu.context, menu);   
  37.         menu.setHeaderIcon(R.drawable.tools);   
  38.         menu.setHeaderTitle("請(qǐng)選擇背景色");   
  39.     }   
  40.     //上下文菜單中菜單項(xiàng)被單擊時(shí)觸發(fā)該方法    
  41.     public boolean onContextItemSelected(MenuItem mi)   
  42.     {   
  43.         switch(mi.getItemId())   
  44.         {   
  45.             case R.id.red:   
  46.                 mi.setChecked(true);   
  47.                 txt.setBackgroundColor(Color.RED);   
  48.                 break;   
  49.             case R.id.green:   
  50.                 mi.setChecked(true);   
  51.                 txt.setBackgroundColor(Color.GREEN);   
  52.                 break;   
  53.             case R.id.blue:   
  54.                 mi.setChecked(true);   
  55.                 txt.setBackgroundColor(Color.BLUE);   
  56.                 break;   
  57.         }   
  58.         return true;   
  59.     }   
  60.     //菜單項(xiàng)被單擊后的回調(diào)方法    
  61.     public boolean onOptionsItemSelected(MenuItem mi)   
  62.     {   
  63.         //判斷單擊的是哪個(gè)菜單項(xiàng),并針對(duì)性地做出響應(yīng)    
  64.         switch(mi.getItemId())   
  65.         {   
  66.             case R.id.font_10:   
  67.                 txt.setTextSize(10*2);   
  68.                 break;   
  69.             case R.id.font_12:   
  70.                 txt.setTextSize(12*2);   
  71.                 break;   
  72.             case R.id.font_14:   
  73.                 txt.setTextSize(14*2);   
  74.                 break;   
  75.             case R.id.font_16:   
  76.                 txt.setTextSize(16*2);   
  77.                 break;   
  78.             case R.id.font_18:   
  79.                 txt.setTextSize(18*2);   
  80.                 break;   
  81.             case R.id.red_font:   
  82.                 txt.setTextColor(Color.RED);   
  83.                 mi.setChecked(true);   
  84.                 break;   
  85.             case R.id.green_font:   
  86.                 txt.setTextColor(Color.GREEN);   
  87.                 mi.setChecked(true);   
  88.                 break;   
  89.             case R.id.blue_font:   
  90.                 txt.setTextColor(Color.BLUE);   
  91.                 mi.setChecked(true);   
  92.                 break;   
  93.             case R.id.plain_item:   
  94.                 Toast toast = Toast.makeText(MenuResTest.this"您單擊了普通項(xiàng)菜單", Toast.LENGTH_SHORT);   
  95.                 toast.show();   
  96.                 break;   
  97.         }   
  98.         return true;   
  99.     }   
  100. }   

下面是程序運(yùn)行效果圖,剛啟動(dòng)時(shí)是一個(gè)TextView

點(diǎn)擊后,在手機(jī)屏幕下方出現(xiàn)OptionMenu

點(diǎn)擊字體大小或普通菜單項(xiàng),出現(xiàn)子菜單

選擇就可改變TextView的字體

如下點(diǎn)擊"普通菜單項(xiàng)",會(huì)出現(xiàn)一個(gè)Toast提示,過幾秒就會(huì)消失

那么怎么彈出ContextMenu呢,就是對(duì)著TextView長(zhǎng)按就可以了

選擇后,背景色就改變了

責(zé)任編輯:閆佳明 來源: my.eoe.cn
相關(guān)推薦

2013-06-08 12:49:03

Android開發(fā)XML定義菜單

2013-04-01 14:35:10

Android開發(fā)Android自定義x

2015-02-12 15:33:43

微信SDK

2015-02-12 15:38:26

微信SDK

2010-09-28 14:27:35

SQL定義Xml

2010-01-27 10:21:00

Android菜單

2013-06-08 13:02:11

Android開發(fā)XML解析

2011-07-06 14:48:17

FOR XML PATXML

2011-08-30 16:43:46

MTK開發(fā)菜單

2011-04-25 14:26:32

Ubuntu菜單

2022-05-18 07:44:13

自定義菜單前端

2009-01-19 10:03:58

C#XML動(dòng)態(tài)分層菜單

2013-06-09 12:49:15

Android開發(fā)XML讀寫XML解析

2013-06-09 13:07:23

Android開發(fā)XML讀寫XML解析

2013-06-09 10:04:35

Android開發(fā)XML讀寫XML解析

2013-06-09 12:53:05

Android開發(fā)XML讀寫XML解析

2013-06-08 11:04:18

Android開發(fā)Pull解析XMLAndroid XML

2013-06-09 10:37:53

Android開發(fā)XML讀寫XML解析

2013-06-09 10:18:29

Android開發(fā)XML讀寫XML解析

2013-06-09 10:25:56

Android開發(fā)XML讀寫XML解析
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)