2010-12-05 6 views
0

Preference 클래스는 의도를 설정하여 클릭 할 때 다른 활동을 활성화하는 환경 설정을 허용하지만이 방법을 사용하여 활동의 결과를 처리 할 수있는 방법을 찾을 수 없습니다. 또한 DialogPreference가있어 사용자 정의보기를 제공 할 수 있지만 사용하려는보기에 직접 액세스 할 수는 없으며 활동 만 볼 수 있습니다.결과를 반환하는 기존 활동을 사용하는 사용자 지정 기본 설정은 어떻게 만듭니 까?

RingtonePreference가 PreferenceManager의 몇 가지 패키지 내부 메소드를 사용하여 시작된 하위 활동의 ​​결과를 수신하는 것처럼 보입니다.하지만 내부적으로 패키지 내부이므로 동일한 작업을 수행 할 수 없습니다.

결과를 반환하는 활동 (환경 설정 값으로 결과가 저장되는)으로 사용자 지정 환경 설정을 처리하는 다른 방법이 있습니까?

답변

2

또한 PreferenceActivity가 onActivityResult를 반환하지 않는다는 사실을 발견했습니다. 즉, SubActivity가 환경 설정을 직접 저장할 수없는 이유가 있습니까? 당신이 그것의 값을 확인해야 할 경우, 당신은 내가 블루투스 장치를 선택하기위한 활동을 다시 사용할 수 있도록하고 싶습니다, 이상적으로

//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(); 
} 
+0

.. 해결 방법으로 당신의 PreferenceActivity를의 onResume에서 그것을 확인할 수 있습니다 그 결과를 기본 설정 값으로 사용하십시오. 또한 PreferenceActivity 호스팅을 변경하지 않고 XML에서 하나 이상의 구성된 Bluetooth 장치에 사용할 수있는 다시 사용할 수있는 환경 설정을 갖고 싶습니다. 내가 현재 할 수있는 가장 가까운 것은 다른 활동을 시작하고 완료시 그 결과를 환경 설정에 저장하는 활동을 시작하는 환경 설정을 갖는 것입니다. 그러나이 추가 활동을 모두 피하는 것이 좋습니다. – SoftMemes

+0

적어도 이것은 좋은 생각입니다. –