前提・実現したいこと
- ボタンを押すと対応する画面を表示するアプリを作成しています。
- 画面は複数回遷移します。
例)画面1(ボタンA1,B1)を最初に表示
ボタンA1押下→画面2(ボタンA2,B2)に遷移
ボタンA2押下→画面3(ボタンA3,B3)に遷移 ※画面遷移終了
ボタンB1押下→画面4(ボタンA4,B4)に遷移
ボタンB4押下→画面5(ボタンA5,B5)に遷移 ※画面遷移終了
- 画面構成は各画面で異なります。
- 画面遷移が終了する画面で押したボタン(上記例のボタンA3,B3,A5,B5)に応じた処理を行います。
ボタンに応じた処理は内容が同じで引数が違うもののため、1つのActivity内でsetContentViewで画面遷移を行おうと考えています。
発生している問題
当該ActivityのOnCreate時にsetOnClickListenerで全ての画面のボタンを登録しようとしたところ、画面1に存在しないボタンの登録でエラーが発生しました。
- その時点で表示していない画面のボタンをOnClick対象に登録することは可能でしょうか?不可能な場合、代替手段はありますでしょうか?
- 表示している画面(もしくは指定した任意の複数ボタン)を一括でOnClick対象に登録することは可能でしょうか?
該当のソースコード
java
1 protected void onCreate( Bundle savedInstanceState ) { 2 super.onCreate( savedInstanceState ); 3 setContentView( 画面1 ); 4 5 // GUI初期設定 6 findViewById( ボタンA1 ).setOnClickListener(this); 7 findViewById( ボタンB1 ).setOnClickListener(this); 8 findViewById( ボタンA2 ).setOnClickListener(this);←ここでアプリが落ちる 9 ・・・ 10
補足情報(FW/ツールのバージョンなど)
Androidバージョン:22
上記例では省略していますが、ボタンは各画面に10個前後あります。
最悪、画面ごとにActivityを作成すれば解決すると考えていますが、
類似内容のファイルを多数作成することになるため、まとめて処理したいです。
また、可能であればsetOnClickListenerの設定処理もループ等でまとめられればと考えています。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/09 01:22