2017-05-06 2 views
0

は、以下の活動を考えてみましょう:PreferenceActivityでPreferenceScreenを作成するには?

public class SettingsActivity extends PreferenceActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     PreferenceScreen screen = 
       getPreferenceManager().createPreferenceScreen(this); 
    } 
}

のAndroid StudioはgetPreferenceManager()への呼び出しのための警告を示しています

'getPreferenceManagerは()' 非推奨のコードが使用されている

この検査報告書を推奨されていません指定された検査範囲内にある。

ただし、警告を回避するためにどのような是正措置を取る必要があるかは記載されていません。 PreferenceManagerへの参照を取得するための選択肢が見つかりません。PreferenceScreenを作成する方法は他にありません。

PreferenceActivityは実行時に生成され、xml/preferences.xmlには含まれないため、プリファレンスとそのデフォルト値をプログラムで設定します。

+0

設定では、PreferenceFragmentを使用してPreferenceFreferenceを表示しません。 [チュートリアル](https://developer.android.com/guide/topics/ui/settings.html)に従います。 –

答えて

2

ではgetPreferenceManager()が推奨されていませんが、PreferenceFragmentでは非推奨になっていません。したがって、PreferenceScreenを作成する正しい方法は次のとおりです。

public class SettingsActivity extends PreferenceActivity { 

    public static class SettingsFragment extends PreferenceFragment { 

     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 

      PreferenceScreen screen = 
        getPreferenceManager().createPreferenceScreen(getActivity()); 
     } 
    } 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     getFragmentManager() 
       .beginTransaction() 
       .replace(android.R.id.content, new SettingsFragment()) 
       .commit(); 
    } 
} 
関連する問題