私は主なアクティビティと設定アクティビティを持っています。設定アクティビティクラスは、メニュー項目の[設定]をクリックするとインテントで発生します。今、私は、デフォルト値が設定で設定されていることを確認したいので、MainActivityのonCreate内で次のコードを呼び出します。しかし、主な活動コンテキストがsetDefaultValuesメソッドによって取得されないというエラーがあります。私はそれが設定活動の文脈に必要と思う。どのようにしてMainActivityから正しいコンテキストを渡すことができますか?言い換えれば、私は主な活動onCreateメソッドからこれの代わりに何を置くべきですか?別のクラスから別のクラスのコンテキストを設定する方法は?
PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
UPDATE:次のように
私の主な活動は、になります。ここで重要な部分は、私はこの部分でエラーを取得していますsetDefaultValuesです。 「これ」は受け入れられません。私がSettingsFragmentまたはSettingsActivityクラスの中でデフォルト値を設定すると、それは正常に動作し、MainActivityではなくSettingsActivityのコンテキストを渡す必要があるように見えます。助けてください!ありがとう!
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
}
私はこれは私がすべての助けに感謝
を取得していますエラーで設定
public class SettingsActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
getFragmentManager().beginTransaction().add(R.id.fragment_container, new SettingsFragment()).commit();
}
public static class SettingsFragment extends PreferenceFragment implements SharedPreferences.OnSharedPreferenceChangeListener{
に異なる作用を持っています!ありがとう!
「設定アクティビティのコンテキストにする必要があると思います。これは間違っています。どんなコンテキストでも問題ありません。 – F43nd1r
あなたの考えを記述するコードを提供してください – Vyacheslav
このコードはどのスレッドからでも呼び出す必要があります。あなたがしていないことを確認し、行う場合は、 'MainActivity.this'代わりに 'これ' –