Android菜單構造技巧

來源:互聯網
上載者:User

在Android手機作業系統中,可以用很多方法來實現一個相同的功能。這就取決於編程人員的個人愛好以及所適用的環境等等。比如Android菜單的建立,就可以用諸如動態等多種方法來實現。

今天學習如何通過xml檔案的方法來構造一個Android菜單。首先,在res下建一個menu檔案夾,在此檔案夾下建一個menu.xml,內容為下:

  1. < ?xml version="1.0" encoding="utf-8"?> 
  2. < menu xmlns:android="http://schemas.android.com/apk/res/android"> 
  3. < item android:id="@+id/settings" 
  4. android:title="@string/settings_label" 
  5. android:alphabeticShortcut="@string/settings_shortcut" /> 
  6. //更多的項在此添加  
  7. < /menu> 

然後在res/values下的strings.xml添加如下字串資源:

  1. < string name="settings_label">Settings...< /string> 
  2. < string name="settings_title">Sudoku settings< /string> 
  3. < string name="settings_shortcut">s< /string> 
  4. < string name="music_title">Music< /string> 
  5. < string name="music_summary">Play background music< /string> 
  6. < string name="hints_title">Hints< /string> 
  7. < string name="hints_summary">Show hints during play< /string> 

還是和上篇一樣,在activity類重寫基類的onCreateOptionsMenu事件,添加如下代碼:

  1. @Override  
  2. public boolean onCreateOptionsMenu(Menu menu) {  
  3. super.onCreateOptionsMenu(menu);  
  4. MenuInflater inflater = getMenuInflater();  
  5. inflater.inflate(R.menu.menu, menu);  
  6. return true;  
  7. } 

這樣,一個Android菜單已經建好了,注意,這裡用到了MenuInflater類,使用該類的inflate方法來讀取xml檔案並且建立菜單。注意該xml菜單只有一項,如果需要更多的項可以在後面繼續添加。

接著,就是實現各個功能表項目的事件了。在activity類重寫基類的onOptionsItemSelected方法:

  1. @Override  
  2. public boolean onOptionsItemSelected(MenuItem item) {  
  3. switch (item.getItemId()) {  
  4. case R.id.settings:  
  5. startActivity(new Intent(this, Settings.class));  
  6. return true;  
  7. // More items go here (if any) ...  
  8. }  
  9. return false;  
  10. } 

在這個響應的Android菜單的事件裡,我們建立一個新的activity。該activity是通過類Settings來呈現的。我們知道如果要呈現一個activity有兩種方法:1)通過代碼布局來實現2)通過xml檔案來實現。每個方法都有優缺點,在這裡我們通過xml檔案呈現view。步驟如下:

1)首先在res檔案下建立一個xml檔案夾,在xml檔案夾下建立Settings.xml檔案。Settings.xml檔案如下:

  1. < ?xml version="1.0" encoding="utf-8"?> 
  2. < PreferenceScreen 
  3. xmlns:android="http://schemas.android.com/apk/res/android"> 
  4. < CheckBoxPreference 
  5. android:key="music" 
  6. android:title="@string/music_title" 
  7. android:summary="@string/music_summary" 
  8. android:defaultValue="true" /> 
  9. < CheckBoxPreference 
  10. android:key="hints" 
  11. android:title="@string/hints_title" 
  12. android:summary="@string/hints_summary" 
  13. android:defaultValue="true" /> 
  14. < /PreferenceScreen> 

2)建立類Settings.java。代碼如下:

  1. package org.example.sudoku;  
  2. import android.os.Bundle;  
  3. import android.preference.PreferenceActivity;  
  4. public class Settings extends PreferenceActivity {  
  5. @Override  
  6. protected void onCreate(Bundle savedInstanceState) {  
  7. super.onCreate(savedInstanceState);  
  8. addPreferencesFromResource(R.xml.settings);  
  9. }  
  10. } 

至此,一個完整的Android菜單已經建立好了~。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.