設定画面を作る (2/6)
作成:2010-11-06 14:52
更新:2010-11-06 14:56
更新:2010-11-06 14:56
■オプションメニューから設定画面を開く
では、アクティビティクラスを作成しましょう。下に簡単なサンプルコードを掲載しておきます。一般に、設定画面というのはオプションメニューから呼び出しますので、ここでも同様にしてあります。
オプションメニューは、onCreateOptionsMenuメソッドをオーバーライドして実装します。ここでは、menu.add("Pref");で「Pref」というメニューを追加し、これにOnMenuItemClickListenerを組み込んでメニュー選択時の処理を実装しています。用意したonMenuItemClickメソッドでは、「openPref」というメソッドを呼び出すようにしてあります。これが、設定画面呼び出しの処理を行うものです。
設定画面は「MySamplePrefActivity」というクラスとして用意することにしてあります。この設定用アクティビティを起動するには、まず起動用のインテントを用意し、これを実行します。
後は、「startActivity」でインテントを実行するだけです。これで、「Pref」メニューを選ぶとMySamplePrefActivityの設定画面のアクティビティが起動されます。
オプションメニューは、onCreateOptionsMenuメソッドをオーバーライドして実装します。ここでは、menu.add("Pref");で「Pref」というメニューを追加し、これにOnMenuItemClickListenerを組み込んでメニュー選択時の処理を実装しています。用意したonMenuItemClickメソッドでは、「openPref」というメソッドを呼び出すようにしてあります。これが、設定画面呼び出しの処理を行うものです。
設定画面は「MySamplePrefActivity」というクラスとして用意することにしてあります。この設定用アクティビティを起動するには、まず起動用のインテントを用意し、これを実行します。
Intent intent = new Intent(this, (Class<?>)MySamplePrefActivity.class);ここでは、new Intentでインテントをまず用意します。引数には、Context(ここではthis)と、起動するアクティビティのclassを渡します。これで、MySamplePrefActivityを起動するためのインテントが用意できます。
startActivity(intent);
後は、「startActivity」でインテントを実行するだけです。これで、「Pref」メニューを選ぶとMySamplePrefActivityの設定画面のアクティビティが起動されます。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
package jp.tuyano.sample; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.*; import android.view.MenuItem.OnMenuItemClickListener; import android.widget.*; public class MySample extends Activity { public TextView textview01; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); textview01 = (TextView)findViewById(R.id.TextView01); } @Override public boolean onCreateOptionsMenu(Menu menu) { MenuItem pref_item = menu.add("Pref"); OnMenuItemClickListener listener = new OnMenuItemClickListener() { public boolean onMenuItemClick(MenuItem item) { openPref(); return false; } }; pref_item.setOnMenuItemClickListener(listener); return true; } public void openPref(){ Intent intent = new Intent(this, (Class<?>)MySamplePrefActivity.class); startActivity(intent); } }
※関連コンテンツ