사용자 정의 기본 설정 화면에서 기본 설정 값을 표시하려고합니다. 이를 위해 우선 순위 조각 내에서 값 (이 경우 문자열)을 가져와야합니다. 비 조각 (활동)에서 나는 값을 예를 들어. final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
을 사용하고 String phonenumber = prefs.getString("preference_name", null);
으로 문자열을 가져 오지 만 선호도 조각 getDefaultSharedPreferences
은 기본 조각에 적용 할 수 없습니다.기본 설정 값에서 기본 설정 값을 얻는 방법
어떻게 해결할 수 있을까요?
여기 내 코드입니다 :
onActivityCreated 당신이에서 hostActivity에 액세스하는 방법은 당신이Context hostActivity = getActivity();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(hostActivity);
을, 당신의 조각 클래스의 (그것은 활동이 작성된 시간)에서
public class PreferencesFragment extends PreferenceFragment implements
OnSharedPreferenceChangeListener {
TextView tvusername, tvphonenumber;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
getPreferenceScreen().getSharedPreferences()
.registerOnSharedPreferenceChangeListener(this);
final SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(this);
// entering preference phonenumber in text view
String phonenumber = prefs.getString("phonenumber", null);
;
tvphonenumber.setText(phonenumber);
// entering preference username in text view
String username = prefs.getString("username", null);
;
tvusername.setText(username);
}
예를 들어 프래그먼트 생성자를 통해이를 생성하고 그 메소드를 사용할 때 액티비티를 호스팅하는 인스턴스에 대한 참조를 컨텍스트로 전달하십시오. – user3455363
@ user3455363 저는 아직 뉴비이기 때문에 이것을 달성하는 방법을 정확히 알지 못합니다. 그래서'final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences (this);'를 내 호스팅 활동에 넣은 다음에해야합니까? 내 바보 같은 질문에 대해 죄송합니다 – sascha
조각에 필드를 만듭니다 ex. 컨텍스트 hostActivity; 그런 다음 같은 유형의 cunstructor에 매개 변수를 추가합니다. - 컨텍스트 및 컨텍스트 유형의 인수 대신 activity에서 새 PreferencesFragment를 호출하면이 – user3455363