問題タブ [onsaveinstancestate]

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 投票する
0 に答える
74 参照

android - onSaveInstanceState で書体を保存する

Typeface.createFromAsset がメモリ リークを引き起こす可能性があることを痛感した後、私は完全な回避策を見つけようとしています。上記のリンクで説明されているキャッシュ ソリューションを使用すると、アプリケーションの実行中にフォントを繰り返し再読み込みする必要がなくなります。しかし、アプリを onCreate から再起動する必要がある場合 (たとえば、向きが変わった後、その間に他のアプリがポップアップするなど) はどうでしょうか? Typeface.createFromAsset を再度呼び出す必要がなく、毎回メモリ リークが発生しないようにするために、書体を onSaveInstanceState に格納する方法はありますか?

0 投票する
3 に答える
388 参照

android - Android: アクティビティ onCreate savedInstanceState は常に null です

したがって、質問が重複していることはわかっていますが、これらの回答で解決策が見つかりませんでした。MainActivity と GameDetailActivity があります。MainActivity GameDetailActivity の階層的な親。マニフェスト ファイルの宣言は次のとおりです。

ここで AppTheme2 宣言:

ここで GameDetailActivity のロジックに戻ります。

そして、GameDetailActivity でホームアップ (戻る "<-") ボタンを押すと、MainActivity で常に savedInstanceState が null になっています。MainActivity で保存されたデータが失われる理由がわかりません。

編集

ここで GameDetailActivity コードを開始します。

これを修正する方法を知っている人はいますか?

前もって感謝します

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

android - Android: RecyclerView GridLayoutManager - スクロール位置の復元が正しく機能しない

私には3つの活動があります: A --> B --> C

アクティビティ B では、RecyclerView の GridlayoutManager を使用してデータを入力しています。アクティビティ C に移動したときにスクロール状態を保存し、アクティビティ C からアクティビティ B に戻ったときにスクロール状態を復元したいと考えています。

.

.

.

しかし、これは、アクティビティ B から戻るボタンを押してアクティビティ A に移動し、アクティビティ A からアクティビティ B に戻ると機能します。

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

java - 画面の向きの後にカードビューを保持する

非同期呼び出しを行い、オブジェクト変数に割り当て(理解するのに時間がかかりました)、ボタンをクリックすると、cardviewsアダプターを介して画面に読み込まれるフラグメントがあります。

私が使用しているコードは次のとおりです。

問題は、画面を回転させようとするとコンテンツが消えて再び表示されるようにするには、(のid.LOAD) ボタンをクリックする必要があることです。saveInstance の状態が null であるかどうかを確認するステートメントを追加しました。画面を回すcardviewsと、アダプターを介してロードしたものが消え、再度ロードする可能性はありません。

どうすれば状態を維持できますか? メソッドのオーバーライドについて読みましたonViewStateRestoredが、クリックリスナー内でコンテンツを処理する必要があるため、そのアイデアは有望ではないようです。

どんな提案でも大歓迎です。

要求どおり、これは のコードです。

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

android - 向きの変更時に TableLayout を保存して復元する

私のプログラムでは、1 つの TableRow を持つ TableLayout があり、ボタン クリックで動的に 4 つの TextView を持つ TableRow を追加しました。携帯電話の向きを変えたら、このテーブルを保存して復元したいと思います。

これを行う必要がある次のコードがあります。

私の onSavedInstanceState メソッドでは、すべての Textview を StringArray に保存するテーブルを調べています。onRestoreInstanceState で、テーブルを再作成しようとしています。

今、私には2つの問題があります。私の最初の問題は、私のプログラムが onSavedInstanceState のテーブルを通過しないことです。すべての行の TextView ではなく、最後の行の TextView を文字列配列に追加するだけです。

たとえば、次の 2 つの行があります。

行 1: 'abc' '123' 'def' '456'

行 2: 'cba' '321' 'fed' '654'

これで、ABC と CBA が最初の文字列配列にあるはずですが、CBA は最後の行であるため 2 回あります。

私の 2 番目の問題は onRestoreInstanceState にあります。「View rowchild1 = tableRow.getChildAt(0);」に到達するとすぐに プログラムがクラッシュします。

誰かが解決策を知っていますか?