問題タブ [android-savedstate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
8 に答える
22922 参照

android - FragmentTransactionをコミットする前に、状態が保存されているかどうかを確認する

ユーザーがアクティビティを表示していないときに発生する可能性のあるコミットについて、次のスタックトレースが表示されることがあります(状態が保存された後)。

Androidのソースを見ると、これは完全に理にかなっています。

さて、フラグメントが望ましくない状態でコミットされるかどうかをチェックする方法(on(Save / Restore)InstanceStateにクラス変数を格納する以外に)があるかどうか疑問に思います。このようにして、後でトランザクションを格納して作成できます。適切なタイミングでコミットします。

0 投票する
1 に答える
1275 参照

android - getArguments().getString always returns null in my Fragment

I have a following problem. I would like to save the values of some TextViews so that they can be retrieved and displayed after reutrning back to this Fragment (I use replace() method to switch Fragments). I followed the advice from this POST, so my code looks like this right now:

The problem is that after returning to the Fragment refreshUI method is called, but loadedLatitude and loadedLongitude Strings are always null. What am I doing wrong?

0 投票する
1 に答える
72 参照

android - フラグメント内のフラグメントは値を保持できません

アクティビティがあり、そのアクティビティには 2 つのフラグメント A と B があります。

フラグメント Aには、 Email を入力するためのEditTextあります。

フラグメント Bにはさらに2つのフラグメントB1B2が含まれており、フラグメント B の下部にある 2 つのボタンを使用して選択できます。

B1 と B2 には、NameNumberを入力するためのEditTextが含まれています。

メール、名前、番号を入力してフラグメント A と B を切り替えると、メールの値は保持されますが、サブフラグメント B1 と B2 の名前と番号の値は失われます

Bにネストされたフラグメントがあるためですか?

サブフラグメント B1 と B2 の値を保持するにはどうすればよいですか?

私はアンドロイドが初めてです。誰もが良い実例を参照できますか?

0 投票する
1 に答える
36 参照

android - 別のアクティビティから戻った後、アプリがバンドルを復元しない

Google マップを使用するアプリがあります。latLngBounds を変数に保存してから、バンドルして後で取得しています。私の問題は、画面の現在の位置を保存してから、カメラをその LatLng に移動したいということです。しかし、マーカーをクリックして別のアクティビティを起動して戻るたびに、画面はクリックされたマーカーの中央に配置されましたが、この機能を取り除き、画面を以前の位置に戻したいと思います。

編集:問題は、アプリがバンドルからデータを回復していないことであり、その理由がわかりません。状態を保存および復元するための私の方法は次のとおりですが、どちらも機能しません。

問題は、別のアクティビティから戻るときにバンドルが何らかの形で null であるようです

0 投票する
0 に答える
126 参照

android - アプリの更新後もインスタンスの状態を保持できますか?

Android アプリの savedInstanceState をアプリの更新後も保持することは可能ですか?

たとえば、次の状況を考えてみましょう。

  1. onSaveInstanceState に書き込まれる Parcelable モデルがあります
  2. アプリの更新、新しいバージョンでのその Parcelable モデルの構造の変更
  3. Parcelable の保存された状態が新しいモデルと一致しないため、次回の起動時にアプリがクラッシュする

意味がないので、これは決して起こらないと思います(願っています)。これが完全に不可能であることを確認したいだけです(この状況を明示的に説明しているドキュメントが見つからないようです)。

0 投票する
1 に答える
2302 参照

android-studio - 永続的なブール値 Android Studio

私は Web (SO を含む) を調べていて、永続的なデータを持つことに関する多くの情報を見つけました。文字列、int、double、カレンダーなど、ほぼすべてのものを見つけました。特定のガイドやチュートリアルを見ていないのはブール値です。

メイン アクティビティにスイッチがあるアプリを作成しました。メイン アクティビティからアプリ全体にアクセスするため、設定ボタン、ウィンドウ、さらにはペインさえありません。スイッチを保持するだけでなく、スイッチを永続的にしたいです(つまり、アプリを閉じると、ユーザーがバイブレーション機能を無効または有効にしたかどうかが記憶されます)。

スイッチの位置に応じて振動を有効にするスイッチがあります。アプリが再作成されたときに、スイッチをオフの位置に保つことができないようです。

保存するコードは次のとおりです。

スイッチが無効から有効に切り替わると、短い持続時間の振動 (100ms) が発生します。長い方が実際にボタンをクリックしたときに振動します。

ブール論理が機能するようになりましたが、IOスイッチはデフォルトに設定されたままであり、切り替えられるまで正しく機能しません。スイッチに関して私が抱えている問題は、ロード時にスイッチを正しい位置にしたいということです (つまり、ブール値が false に保存されている場合、スイッチはオフの位置でロードされます)。2人のコミュニケーションの仕方がわかりません。スイッチは、その逆ではなく、ブール値に基づいて変更する必要があると思います。xmlスイッチをJavaにあるスイッチと通信させる方法、およびその逆の方法がわかりません。

スイッチの xml コードは次のとおりです。

android:checked="true"スイッチがデフォルトのオンの位置に作成される原因はわかっています。値xml内に新しいブール値を作成しようとしました(したがって、コードではなく、android:checked="true"の行に沿って何かを言うでしょうandroid:checked="@bool/vibeConvert)が、そこにあるときにJavaを介してブール値を編集する方法がわからないことがわかりました.

このデータを永続化するためにいくつかの方法を試しましたが、どれもうまくいきませんでした。特にブール値に関して、永続的なデータについて何らかの助けが得られれば、それは素晴らしいことです。

EDIT:SharedPreferencesを使用しようとする私の試みを示しています。

SharedPreferences の使用方法がよくわかりません。また、それらを配置する場所を指定する場所が見つかりませんでした。明らかな理由から、ここではコメントアウトされています。ここからどこへ行くべきかわからない。

ありがとう!

ネイサン

編集:

次のコードを使用してみました:

ここに私のXMLがあります:

よくわかりません:

  1. ブール値が保存されています。

  2. スイッチは Java コード内で編集できます。

次のコード行でアイデアを試してみましたが、うまくいきませSwitch ("+id/switch1") = vibeSave;んでした。ここから先に進む方法がわかりません。ブール値の値に基づいて XML を正しい位置から開始できるようにしたいのですが、XML と Java を相互に通信させる方法がわかりません。

0 投票する
2 に答える
2068 参照

android - ハッシュマップを置く> 保存されたインスタンス状態で

savedInstanceStateAndroid での値の追加に問題があります。インターネットで解決策を見つけようとしましたが、解決策が見つからないようです。どこに問題があるか分かる方もいらっしゃるかもしれません。HashMap> を に配置しsavedInstanceState、その onCreate メソッドを取得する必要があります。誰かがこの問題に遭遇して解決しましたか? お時間をいただきありがとうございます。