問題タブ [android-configchanges]
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.
android - onSaveInstanceState() と onRetainCustomNonConfigurationInstance() の比較
MenuItem
プログラムの状態に応じて動的に管理するいくつかの とともに、ActionBarSherlock を使用しています。具体的には、のメソッドでMenuItem
をインスタンス変数に保存し、後で必要に応じてそれらを表示および/または非表示にできます。Activity
onCreateOptionsMenu()
Activity
MenuItem
ただし、デバイスのローテーションなどの構成変更で変数が失われる可能性があることがわかりました。そのため、必要に応じて、それらを に入れ、次の呼び出しでメカニズムを介して復元するために にParcel
渡します。onSaveInstanceState()
savedInstanceState
onCreate()
これは、デバイスのローテーションの場合にうまく機能するようです。ただし、ホームボタンを押すと、次のエラーが表示されます。
違いは何ですか、または修正方法の提案はありますか?ありがとうございました!
アップデート
を使用して簡単な解決策を見つけましたonRetainCustomNonConfigurationInstance()
。このメソッドをオーバーライドすることで、Activity
が破棄されているときに選択したクラスのオブジェクトを隠しておき、 を使用してそれを取得できますgetLastCustomNonConfigurationInstance()
。これは、 s などをいじるよりもはるかに簡単に思えますがParcelable
、私の場合はうまくいきます。
しかし、それでも知りたいのですが、なぜ上記のエラーが発生するのonSaveInstanceState()
ですか? そして、それは一般的に安全に使用onRetainCustomNonConfigurationInstance()
できますか、それとも落とし穴はありますか?
android - ActionBar は常に再作成されます
前回の投稿のようにアクションバーとタブを作成しましたが、
フラグメント webview Java スクリプト関数が機能しない
ActionBar に webview をロードしました。webview で、画像をキャプチャするためのボタンを配置し、デバイスのカメラを開いて写真を撮り、ロードされた html ファイルに値を返しました。ネイティブ メソッドから html ファイルの値を確認しましたが、問題ありません。ただし、アクション バーは常に再作成されます。カメラを開いて値を webview に返す代わりに、任意の文字列を html ファイルに送信しようとすると、リロードされません。アクション バー タブ シナリオ内でアクティビティを開始すると、onCreate() メソッドのみが 2 回呼び出されるため、html ページがリロードされます。「android:configChanges="orientation|keyboardHidden|screenSize」を指定しましたすべての活動のために。この問題を解決するにはどうすればよいですか?
android - Android: 複数のユーザーが単一ユーザーごとにシステム ロケール/言語を変更する方法
マルチユーザーで AOSP に取り組んでいます。デフォルトのシステム言語 (またはロケール) を単一のユーザーに変更する必要があります。すべての試行で、すべてのユーザーのシステム言語全体が変更されます。
ActivityManagerNative クラス updateConfiguration(myConfiguration) を使用します
出来ますか?もしそうなら、どのように:)ありがとう。
android - UIなしで他のフラグメントを追加した後、「フラグメントはビューを作成しませんでした」を取得する
私は本当に奇妙な問題を抱えています。アプリのほぼすべてのアクティビティに追加される共通のフラグメントがあります。このフラグメントは、プレーヤー バーの小さいバージョンを示しています。そのため、いくつかのブロードキャストをリッスンして現在の音楽の名前を更新し、再生/一時停止などのいくつかのコントロールを備えています。
私が言ったように、私は自分のアプリのほぼすべてのアクティビティにこのフラグメントを追加していますが、問題が発生したことは一度もありません. しかし今、UI を持たず、保持される (setRetainInstance(true)) 新しい Fragment を作成する必要がありました。この新しい Fragment の追加後、すべてが問題ないように見えました。デバイスを回転させてアクティビティがクラッシュするまで。
そのため、ログを見ると、次の例外が表示されます。
この例外は、新しいフラグメントではなく、既にアクティビティにあったフラグメントで発生しています。プレーヤー バーの小さいバージョンでフラグメントを削除し、UI なしで新しいフラグメントを保持すると、すべてが正常に機能します。古いフラグメントだけを保持し、新しいフラグメントを削除しても機能します。
詳細: 古いフラグメントは、レイアウト XML を介して追加されます。アクティビティの XML は次のとおりです。
新しいフラグメント (UI なし) は、次の方法で追加されます。
アップデート:
問題がこれに関連しているかどうかを確認するために、UI のないフラグメントから setRetainInstance(true) を削除しました。しかし、問題はまだ発生しています。
android - Androidプラグインへのインストールに問題がある
Ubuntuを使用しています
下に写真を載せました
パッケージをインストールする必要がある場合... ubuntuでそれを行う方法
不足している要件のエラーは、画像で見ることができます
android - Android のローカル構成の変更が機能しない
ユーザーが言語を変更できる設定アクティビティを使用して、2 つの言語で提供されるアプリケーションを構築しています。ユーザーが任意の言語を選択したら、その選択を保存して、アプリケーションを再度起動したときに新しい言語が表示されるようにします。さまざまな言語とさまざまな向きのレイアウトに関連するすべてのことを行いました。
私の問題
アプリケーションを起動すると、常に言語で起動しEnglish
ますが、ロケール言語を印刷すると結果はArabic
.
ヒント
ユーザーが設定アクティビティから言語を変更し、保存を押すと、アプリケーションは新しい言語で完全に動作します。残念ながら、アプリケーションを再起動すると、この新しい言語で起動されません。
私のコード
Tags.java - 3 つの文字列のみを含むクラス:
スプラッシュ アクティビティ- アプリケーションが開始されるアクティビティ:
前に説明したように、アプリケーションの言語が変更され、言語をSetting activity
.
Setting activity
私がその活動で行ったことをスプラッシュ活動と比較するために、あなたは私にそのコードを提供するように頼むと確信しています. このコードは次のとおりです。
活動の設定
コードは非常に単純です。2s_language
つの値からスピナーを使用しました。
設定アクティビティで、ユーザーが を押すsave
と、Setting
アクティビティが終了するという問題が発生する可能性があります。splash
アクティビティでは、関数内の言語を確認してから、oncreate
アクティビティを続行し、いくつかの手順を実行して終了します。活動を終えることが問題だとは思いませんが、イメージを明確にするために言っただけです。
この問題を解決するにはどうすればよいですか?