前回のソースに手を加えて、画面遷移を実装します。
次に、新しい画面(レイアウト)を作成します。
メニューから「ファイル」→「新規」→「Android XML File」を選択。
以下を入力(選択)して「OK」ボタンをクリックします。
- ファイル:sub.xml
- What type of resource …:レイアウト
この画面に対応するJavaクラスを作成します。
メニューから「ファイル」→「新規」→「クラス」を選択。
以下を入力(選択)して「完了」ボタンをクリックします。
- 名前:SubActivity
- スーパークラス:android.app.Activity
(「参照…」ボタンをクリックして選択できます)
MainActivity.javaを編集します。
Next/Quitに対応するButton変数を作成し、クリックリスナを登録します。
Quitボタンがクリックされたらfinish()を呼び出し、このActivityを終了します。
NextボタンがクリックされたらIntentでSubActivityを開始します。
(以下では、変更を加えていないonStart()などを省略しています)
public class MainActivity extends Activity {
private Button m_buttonNext;
private Button m_buttonQuit;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
m_buttonNext = (Button)findViewById(R.id.button_next);
m_buttonQuit = (Button)findViewById(R.id.button_quit);
m_buttonQuit.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
finish();
}
});
m_buttonNext.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent i = new Intent(MainActivity.this, SubActivity.class);
startActivity(i);
}
});
Log.v(LOG_TAG, “MainActivity::onCreate”);
}
}
続いてSubActivity.javaを編集します。
基本的にはMainActivity.javaをコピって修正します。
Backボタンがクリックされたらfinish()を呼び出し、このActivityを終了させます。
public class SubActivity extends Activity { private static final String LOG_TAG = “ActivityTest”; private Button m_buttonBack; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.sub); m_buttonBack = (Button)findViewById(R.id.button_back); m_buttonBack.setOnClickListener(new OnClickListener() { public void onClick(View v) { finish(); } }); Log.v(LOG_TAG, “SubActivity::onCreate”); } }
まだあります。
AndroidManifest.xmlの編集です。
「アプリケーション」タブを選択し、左下の「Application Nodes」の「追加」ボタンをクリックします。
「Activity」を選択して「OK」ボタンをクリックします。
右下の「Attributes for Activity」の「Name*」項目にある「参照」ボタンをクリックします。
「SubActivity」を選択して「OK」ボタンをクリックします。
デバッグ実行してみます。
MainActivityで「Next」ボタンをクリックすると…。
SubActivityが表示されます。
「Back」ボタンをクリックすると、MainActivityに戻ります。
MainActivityで「Quit」ボタンをクリックすると、ホーム画面が表示されます。
この一連の流れで、以下のようなログが出力されました。
※で始まる行は説明のために追加したものです。
※MainActivity起動 03-24 13:49:24.163: ActivityTest(227): MainActivity::onCreate 03-24 13:49:24.173: ActivityTest(227): MainActivity::onStart 03-24 13:49:24.203: ActivityTest(227): MainActivity::onResume ※「Next」ボタンをクリック 03-24 13:50:04.502: ActivityTest(227): MainActivity::onPause 03-24 13:50:04.762: ActivityTest(227): SubActivity::onCreate 03-24 13:50:04.772: ActivityTest(227): SubActivity::onStart 03-24 13:50:04.772: ActivityTest(227): SubActivity::onResume 03-24 13:50:05.432: ActivityTest(227): MainActivity::onStop ※「Back」ボタンをクリック 03-24 13:51:13.262: ActivityTest(227): SubActivity::onPause 03-24 13:51:13.362: ActivityTest(227): MainActivity::onRestart 03-24 13:51:13.362: ActivityTest(227): MainActivity::onStart 03-24 13:51:13.372: ActivityTest(227): MainActivity::onResume 03-24 13:51:13.942: ActivityTest(227): SubActivity::onStop 03-24 13:51:13.952: ActivityTest(227): SubActivity::onDestroy ※「Quit」ボタンをクリック 03-24 13:52:08.282: ActivityTest(227): MainActivity::onPause 03-24 13:52:09.032: ActivityTest(227): MainActivity::onStop 03-24 13:52:09.032: ActivityTest(227): MainActivity::onDestroy
ちなみに「Back」「Quit」の代わりに、端末の「戻る」ボタンを押しても同じことが起こりました。
次のエントリーでは、Activity間でデータの受け渡しを実装します。
コメント