私はまた、PreferenceActivityがonActivityResultを返さないことに気付きました。つまり、あなたのSubActivityが嗜好を直接保存できなかった理由はありますか?あなたはそれの値をチェックする必要がある場合は、回避策として、あなたのPreferenceActivityのonResumeでそれをチェックすることができます。..
//SubActivity onCreate
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn = (Button) findViewById(R.id.Button01);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences prefs = getSharedPreferences(TestPreferenceActivity.PREFS_FILE, MODE_WORLD_READABLE);
prefs.edit().putString("mykey", "someValue").commit();
finish();
}});
}
//PreferenceActivity onResume
@Override
protected void onResume() {
Log.d(TAG, "Preferences Resumed");
//Check for new Preference Values
SharedPreferences prefs = getSharedPreferences(PREFS_FILE, MODE_WORLD_READABLE);
String value = prefs.getString("mykey", "defValue");
Log.d(TAG, "Current value is: " + value);
super.onResume();
}
理想的には、私は、Bluetoothデバイスを選択するための活動を再利用し、そのを使用できるようにしたいと思います結果を嗜好値として返す。また、PreferenceActivityのホスティングを変更することなく、XMLから1つ以上の設定済みのBluetoothデバイスに使用できる再利用可能なPreferenceを持っていたいと思います。私がこれに近づけることができるのは、他のアクティビティを開始するアクティビティを開始するプリファレンスを持つことです。完了したらそのプリファレンスをプリファレンスに保存しますが、この余分なアクティビティをすべて避けるのがよいでしょう。 – SoftMemes
これは少なくとも私にとっては良い考えです。 –