1. ホーム
  2. android

[解決済み] PreferenceFragmentは意図的に互換性パッケージから除外されたのでしょうか?

2022-04-27 09:12:58

質問

3.0と3.0以前の両方のデバイスに適用できるプリファレンスを書きたいと思っています。その結果 PreferenceActivity には非推奨のメソッドが含まれているため(付属のサンプルコードでは使用されていますが)、このメソッドについて調べてみました。 PreferenceFragement と互換性パッケージで解決しました。

と思われるが、どうやら PreferenceFragment は互換性パッケージに含まれていません。これは意図的なものなのか、どなたか教えていただけませんか? もしそうであれば、デバイスの範囲(つまり < 3.0 と >=3.0) を簡単にターゲットにできるのでしょうか、それとも輪をかけなければならないのでしょうか? 意図的に除外されていないのであれば、互換性パッケージの新しいリリースを期待してよいのでしょうか? あるいは、安全に使用できる別の回避策があるのでしょうか?

乾杯

ジェームス

解決方法は?

<ブロッククオート

PreferenceActivityに非推奨のメソッドが含まれていることを発見(ただし、付属のサンプルコードでは使用されている)。

非推奨のメソッドは、Android 3.0から非推奨となりました。これらはすべてのバージョンのAndroidで全く問題ありませんが、方向性としては PreferenceFragment Android 3.0 以降のバージョンでは

<ブロッククオート

これは意図的なものなのか、どなたか教えてください。

私の推測では、エンジニアの時間の問題だと思うのですが、あくまで推測に過ぎません。

その場合、デバイスの範囲(つまり < 3.0 と >=3.0) を簡単にターゲットにできるのでしょうか、それとも飛び抜けたものが必要なのでしょうか?

私は、quot;easy"でできると考えています。2つの別々の PreferenceActivity の実装は、1つはプリファレンスヘッダと PreferenceFragments もう1つはオリジナルの方法です。必要な時点(例えば、ユーザーがオプションメニューの項目をクリックしたとき)で、正しい方を選択します。 以下はサンプルプロジェクトです。 のデモを行います。または、1つの PreferenceActivity のように、両方のケースを処理することができます。 このサンプルプロジェクト .

意図的に除外されたのでなければ、互換性パッケージの新しいリリースを期待してもいいのでしょうか?

他の人が知るとき、つまり出荷されたときに知ることになります。

<ブロッククオート

それとも、他に安全に使える回避策があるのでしょうか?

上記をご参照ください。