Android-スイッチングと景観画像モードによる意思う価値
-
06-09-2019 - |
質問
を使用してい意図を切り替え活動は私のAndroidアプリです。海外で戦うなかで意識しているデータの意思に来ます。私がスイッチの電話と景観画像モードの値から同意した取得しまNullPointerException。
で誰かのきっかけを教えてくださいが間違っています。
あのコミュニケーションも楽しみのコードを見なくなったりしているようです。だニーズを見て特定の部分のコードです。
編集
い解決の問題のない状態が保存されます。でも問題となっていないときは、ボタンの画面作業後のオリエンテーションは変更されました。ボタンを押し、この警告にLogCat
02-25 23:07:49.190: WARN/WindowManager(58): No window to dispatch pointer action 0
を参考にしてください。
解決
ときにスイッチ方向の活動の再現とonCreateは思い出しで使用にはバンドルへの保存の現状および回復後のオリエンテーション変化します。もありますから、参照して下さい場合にだけアプリとのTextViewをご入力テキストを変更。の場合バンドル状態のためのonCreateきを抑えます。こういNullPointer後方向に変化します。でんと地獄が、私たちが共に暮らしています。
この リンクシリーズオリエンテーションチュートリアル この最初の一 特に必要をご理解いただくために何がどのように成功を維持する現在の状態に固定されます。
更新:また、ポストで 活動再起動回転Android このとほぼ同じものだと言ってもいいです。
編集フォローアップの問題:
た再添付をクリックしハンドラを後方向に変わるのか?
他のヒント
あなたはこれをたいアクティビティマニフェストfile..inでこれを書く -
android:configChanges="orientation|keyboardHidden"
の編集の新しいAPIのバージョンについては、次のいずれかを使用します -
android:configChanges="orientation|keyboardHidden|screenSize"
確かに、それは動作します..
これを試してください:
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString(SOME_KEY, "blah blah blah");
}
@Override
public void onCreate(Bundle savedInstanceState) {
...
somevalue = savedInstanceState.getString(SOME_KEY);
...
}
これが可能属性アンドロイドを宣言するために:「オリエンテーション」の値を持つconfigChanges、これは再起動してからの活動を防ぐことができます。その代わりに、アクティビティが実行されたままであり、そのonConfigurationChanged()メソッドが呼び出されます。
あなたのマニフェストに< android:configChanges="orientation|keyboardHidden"/>
を宣言します。これは、あなたが自分でオリエンテーション/キーボードの可視性の変更を管理することができます。もちろん、あなたはそれを管理するためのコールバックメソッドをオーバーライドする必要はありません。
こんにちは、私はまた、この問題が発生しました。 ものを私のためにそれを固定することだっます:
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
// Save the user's current game state
savedInstanceState.putString("Username", mUsername);
savedInstanceState.putString("Password", mPassword);
savedInstanceState.putString("UserID", mUserID);
// Always call the superclass so it can save the view hierarchy state
super.onSaveInstanceState(savedInstanceState);
}
、その後のonCreate()で
if (savedInstanceState == null) {
Bundle extras = getIntent().getExtras();
if(extras == null) {
mUsername = "?";
mPassword = "?";
mUserID = "?";
} else {
mUsername = extras.getString("Username");
mPassword = extras.getString("Password");
mUserID = extras.getString("UserID");
}
} else {
mUsername = (String) savedInstanceState.getSerializable("Username");
mPassword = (String) savedInstanceState.getSerializable("Password");
mUserID = (String) savedInstanceState.getSerializable("UserID");
}
あなたは、オブジェクトがnullでないことを確認することができます。