[解決済み] 非推奨のため、addPreferencesFromResource の代替となります。
質問
私は、ユーザーが次のようにバックグラウンドスプラッシュスクリーン音楽を開始/停止できるようにするために、私のアプリでPreferenceアクティビティを作成します。
public class Prefs extends PreferenceActivity{
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.prefs);
}
}
を作成し、xml フォルダ内に prefs.xml を作成します。
<?xml version="1.0" encoding="utf-8" ?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<CheckBoxPreference
android:title="splash music"
android:defaultValue="true"
android:key="checkbox"
android:summary="Plese remove music "/>
</PreferenceScreen>
そして、スプラッシュアクティビティ用のコードです。
public class Splash extends Activity{
MediaPlayer ourSong;
@Override
protected void onCreate(Bundle Drandroid) {
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
// TODO Auto-generated method stub
super.onCreate(Drandroid);
setContentView(R.layout.splash);
ourSong = MediaPlayer.create(Splash.this, R.raw.splashsound);
SharedPreferences getPrefs =
PreferenceManager.getDefaultSharedPreferences(getBaseContext());
boolean music = getPrefs.getBoolean("checkbox", true);
if (music == true)
ourSong.start();
Thread timer = new Thread(){
public void run(){
try{
sleep(5000); }
catch (InterruptedException e){
e.printStackTrace(); }
finally{
Intent openTurkeyTrip = new Intent("com.android.dr.MENU");
startActivity(openplanet); }}
};
timer.start(); }
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
ourSong.release();
finish();
}
}
また、私のアプリは以下のように古いデバイスと新しいデバイスをサポートします。
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
何かアドバイスがあれば、ありがたいです。
どのように解決するのですか?
PreferenceActivity
は非推奨ではありません。
addPreferencesFromResource()
オン
PreferenceActivity
は
は非推奨です。しかし、API Level 10以下をサポートしている場合、少なくともそれらのデバイスでは、これを使用する以外に選択肢はありません。
非推奨の方法としては
PreferenceFragment
と連携して
PreferenceActivity
で説明されているように
その
PrefereceActivity
ドキュメント
. もし、あなたのアプリがAPI Level 11以降しかサポートしていないのであれば、それを使えばいいだけです。あなたのアプリが古いデバイスをサポートしている場合は、どちらかです。
-
使用する
addPreferencesFromResource()
古いバージョンのサポートを打ち切るまで、ずっと使えるからです。 -
使用方法
addPreferencesFromResource()
をチェックすることで、古いデバイスでのみ使用できます。Build.VERSION.SDK_INT
新しいデバイスでは、新しいフラグメントベースのシステムに依存します。
関連
-
[解決済み】コンテンツには、id属性が「android.R.id.list」であるListViewが必要です。
-
[解決済み】シンボル 'AppCompatActivity' を解決できない。
-
[解決済み] 設定 ':classpath' の依存関係をすべて解決できなかった。
-
[解決済み】Android Studio AVD - Emulator: 終了コード 1 でプロセスが終了
-
[解決済み】起動アクティビティを特定できませんでした。デフォルトのアクティビティが見つかりませんでした
-
[解決済み】Android Studio。Android.support.design.widget.FloatingActionButton クラスを膨らませるのにエラーが発生する。
-
[解決済み】android.content.res.Resources$NotFoundExceptionの取得:androidにリソースが存在する場合でも例外が発生する。
-
[解決済み] Looper.prepare()を呼び出していないスレッドではハンドラを作成できない
-
[解決済み] Xlint:deprecationを使用して再コンパイルする方法
-
[解決済み] ADBエラー:デーモンに接続できない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】パッケージ名(Google Analytics)に一致するクライアントが見つからない - 複数のproductFlavorsとbuildTypes
-
[解決済み】Android Intent コンストラクタを解決できない
-
[解決済み】新しいAVDを作成すると、CPU/ABIフィールドに「システムイメージがインストールされていません」と表示される。
-
[解決済み】Android Studioでused import文がunused import文に指定されるのはなぜ?
-
[解決済み】カメラサービスへの接続に失敗しました。
-
[解決済み] TypeError: cb.apply は関数ではありません。
-
[解決済み] Mockito lenient() を使用する場合
-
[解決済み] Android SDK の場所には空白を含めないでください。NDK ツールで問題が発生するためです。
-
[解決済み] Android Fragment no view found for ID?
-
[解決済み] Android: @drawable/picture を drawable に変換するのに失敗しました。