2009年5月27日水曜日

Android Menu action

MENU ボタンを押したときの動作を追加する

Sudoku/res/value/strings.xml
  1. <!--xml version="1.0" encoding="utf-8"?-->  
  2. <resources>  
  3.     <string name="app_name">Sudoku</string>  
  4.     <string name="main_title">Android Sudoku</string>  
  5.     <string name="continue_label">Continue</string>  
  6.     <string name="new_game_label">New Game</string>  
  7.     <string name="about_label">About</string>  
  8.     <string name="about_title">About Android Sudoku</string>  
  9.     <string name="about_text">\  
  10.  Sudoku is a logic-based number placement puzzle.  
  11.  Starting with a partially completed 9x9 grid, the  
  12.  objective is to fill the grid so that each row,  
  13.  each column, and each of the 3x3 boxes   
  14.  (also called <i>blocks</i>) contains the digits  
  15.  1 to 9 exactly once.  
  16.     </string>  
  17.     <string name="exit_label">Exit</string>  
  18.     <string name="settings_label">Settings...</string>  
  19.     <string name="settings_title">Sudoku settings</string>  
  20.     <string name="settings_shortcut">s</string>  
  21.     <string name="music_title">Music</string>  
  22.     <string name="music_summary">Play background music</string>  
  23.     <string name="hints_title">Hints</string>  
  24.     <string name="hints_summary">Show hints during play</string>  
  25. </resources>  



Sudoku/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  
  4.         android:id="@+id/settings"  
  5.         android:title="@string/settings_label"  
  6.         android:alphabeticShortcut="@string/settings_shortcut"  
  7.     />  
  8. </menu>  


Sudoku/src/org/example/sudoku/Sudoku.java
  1. package org.example.sudoku;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.content.Intent;  
  6. import android.view.View;  
  7. import android.view.View.OnClickListener;  
  8. import android.view.Menu;  
  9. import android.view.MenuInflater;  
  10. import android.view.MenuItem;  
  11.   
  12. public class Sudoku extends Activity implements OnClickListener{  
  13.     /** Called when the activity is first created. */  
  14.     @Override  
  15.     public void onCreate(Bundle savedInstanceState) {  
  16.         super.onCreate(savedInstanceState);  
  17.         setContentView(R.layout.main);  
  18.   
  19.         View continueButton = this.findViewById(R.id.continue_button);  
  20.         continueButton.setOnClickListener(this);  
  21.         View newButton = this.findViewById(R.id.new_button);  
  22.         newButton.setOnClickListener(this);  
  23.         View aboutButton = this.findViewById(R.id.about_button);  
  24.         aboutButton.setOnClickListener(this);  
  25.         View exitButton = this.findViewById(R.id.exit_button);  
  26.         exitButton.setOnClickListener(this);  
  27.     }  
  28.       
  29.     public void onClick(View v) {  
  30.         switch(v.getId()){  
  31.         case R.id.about_button:  
  32.             Intent i = new Intent(this, About.class);  
  33.             startActivity(i);  
  34.             break;  
  35.         }  
  36.     }  
  37.   
  38.     @Override  
  39.     public boolean onCreateOptionsMenu(Menu menu){  
  40.         super.onCreateOptionsMenu(menu);  
  41.         MenuInflater inflater = getMenuInflater();  
  42.         inflater.inflate(R.menu.menu, menu);  
  43.         return true;  
  44.     }  
  45.       
  46.     @Override  
  47.     public boolean onOptionsItemSelected(MenuItem item){  
  48.         switch (item.getItemId()){  
  49.         case R.id.settings:  
  50.             startActivity(new Intent(this, Settings.class));  
  51.             return true;  
  52.         }  
  53.         return false;  
  54.     }  
  55. }  


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


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


Sudoku/AndroidManifest.xml
  1. <!--xml version="1.0" encoding="utf-8"?-->  
  2. <manifest  
  3.   xmlns:android="http://schemas.android.com/apk/res/android"  
  4.   package="org.example.sudoku"  
  5.   android:versionCode="1"  
  6.   android:versionName="1.0">  
  7.     <application <brbr="">      android:icon="@drawable/icon"   
  8.       android:label="@string/app_name">  
  9.     <activity <brbr="">      android:name=".Sudoku"  
  10.       android:label="@string/app_name">  
  11.       <intent-filter>  
  12.       <action android:name="android.intent.action.MAIN">  
  13.       <category android:name="android.intent.category.LAUNCHER">  
  14.       </category></action></intent-filter>  
  15.     </activity>  
  16.     <activity <brbr="">      android:name=".About"  
  17.       android:label="@string/about_title"  
  18.       android:theme="@android:style/Theme.Dialog">  
  19.     </activity>  
  20.     <activity <brbr="">      android:name=".Settings"  
  21.       android:label="@string/settings_title">  
  22.     </activity>  
  23.   </application>  
  24.   <uses-sdk android:minsdkversion="3">  
  25.    
  26. </uses-sdk></manifest  


MENU ボタンを押すと、Settings... が表示されるようになった



Settings... をクリックすると、設定項目が表示される




 

0 件のコメント:

コメントを投稿