画面遷移

ボタンを追加した Hello World をベースに作る。

パッケージ・エクスプローラーの res/layout のフォルダアイコンを右クリックして、
[新規]→[ファイル] で、second_screen.xml を追加する。

中身がないのでエラーアイコン(小さな赤い×マーク)が表示されてる。


中身は、res/layout/main.xml からコピペ。
全く同じだと画面の切り替わりを目視で確認できないので、
android:text="@string/hello" と、Button01 のところを、変えておく。
Button01 は、Button02 に変更。
button01_name は、button02_name に変更。
hello は hello2 に変更。


button02_name, hello2 の文字列リソースを追加。


SecondScreenActivity.java と言うファイル名のソースを追加。
内容は写真の通り。


HelloWorldActivity の中身も書き換える。

画面の遷移には Intent を使う。
startActivityForResult() で SecondScreenActivity を表示させる。
startActivityForResult() の場合、SecondScreenActivity からの戻り値通知を受け取れる。
戻り値がいらない場合は、startActivity() で良い。

SecondScreenActivity の方は、startActivityForResult() で呼ばれているので、setResult() で返値を通知。
finish() で SecondScreenActivity を終了する。
startActivity() で呼ばれた場合は、たぶんこの方法ではダメで、startActivity() で戻るのだろう(未確認)。

次に、AndroidManifest.xml に SecondScreenActivity を追記する。
これを忘れると、SecondScreenActivity に切り替わろうとした瞬間に強制終了してしまうので注意。
逆に言えば、画面遷移時の強制終了は、AndroidManifest.xml への追記忘れの可能性がある。

アプリケーションタブで GUI を使って追加することも出来るが、
xml に直接入力しても大丈夫みたい。
なぜか [!] が付くが、今は気にしない。

実行。


クリックすると・・・


もう一度クリックすると、前の画面に戻る。
無事に切り替わる。

現状 (2010/4/10 12:00ころ) では、ボタンの Text に日本語が入ってると、
レイアウトエディタで正常に表示されないみたい。

でも、実際にエミュレータで動かしてみると、しっかり日本語のボタンが表示されるから、
実用上は問題ないだろう・・・たぶん。

以上。

[戻る]