複数の画面をサポートするアプリケーションを開発しています。3つのレイアウト(大、小、中)を作成しました。私はそれをテストしています。サインインとサインアップの2つの画面があります。
サインインで正常に動作しています。しかし、サインアップボタンをクリックすると、サインアップページに移動します。ポートレートモードでモードを変更すると、アプリがクラッシュし、logcatにもクラッシュレポートのようなものはありません。
複数の画面をサポートするアプリケーションを開発しています。3つのレイアウト(大、小、中)を作成しました。私はそれをテストしています。サインインとサインアップの2つの画面があります。
サインインで正常に動作しています。しかし、サインアップボタンをクリックすると、サインアップページに移動します。ポートレートモードでモードを変更すると、アプリがクラッシュし、logcatにもクラッシュレポートのようなものはありません。
マニフェストにのようなコードを追加していない場合android:configChanges="orientation|keyboardHidden"
、モードを変更すると、現在のアクティビティ(サインアップ?)が再開されます。アクティビティのすべての情報が利用できるわけではないため、その時点でアクティビティを再開できない可能性があります。
(ところで:あなたの質問は完全には明確ではありませんが、特定のアクティビティでモード(ポートレート/風景)を変更すると、アプリケーションがクラッシュすることを私は収集します)
デフォルトでは、設定が変更された場合、Androidはアクティビティを再開します。この再起動を(保存されたインスタンスを保存および復元することによって)正しく処理するか、推奨されない方法のオーバーライドonConfigurationChanged
()メソッドとして処理する必要があります。
アプリケーションをデバッグモードで実行してみてください。クラッシュした場合は、問題の原因となる例外が表示されます。
なぜあなたはポートレートとランドスケープに異なる画面を使用したのですか、多くの場合、異なる画面を使用することはできません。そのようにコードを記述しました。これは両方の画面に共通です。
元。レイアウトパラメータでは、幅に「fill_parent」を使用しました。どちらの場合も有効です。
あなたの場合、あなたはサインインとサインアップフォームを作ります、私はサインインとサインアップフォームも作ります、そして私は異なるレイアウトやスクリーンを作る気がしません。
両方のモードで共通の画面を作成することをお勧めします。