質問: editText.getText().toString(); textView.setText(text); setScreenSub(); } }); } } ``` ### 試したこと setScreenMain()内のonClickで setScreenSub(); だけ宣言したら、画面は元に戻ります。 ですが、入力テキストをtextXiewにセットする部分のコードを入れると、落ちます。 java初心者のため、様々な本やサイトを参考に見ているのですが、解決策が分からず、質問させていただきました。 他にsetScreen~()を使用することなく、同じActivity間でレイアウトを移動させる方法もあるのでしょうか? 何でも良いのでアドバイスの方、よろしくお願いいたします。 ### 補足情報(FW/ツールのバージョンなど) androidstudio3.0.1
回答: R.id.button17、R.id.textViewSub1、R.id.editTextの3つのコンポーネントは、activity_main4.xml上に配置されているものなのでしょうか?(そうした問題を切り分けるためにも、XMLのソースコードも提示していただきたいです。) これらのいずれかがactivity_sub.xml側にあるものだとしたら、`setContentView(R.layout.activity_main4);`の時点でsub側のコンポーネントは消滅しますので、findViewById()の結果はnullが返り、そのnullの変数を参照することでアプリは落ちるでしょう。 > > 同じActivity間でレイアウトを移動させる方法もあるのでしょうか? > > > 非常に古い資料を参考にされているようなのですが、現在のAndroidアプリケーションではそうした用途にはFragmentという要素を用いることが推奨されています。その方向で設計し直した方がいいかもしれません。