SwitchPreference
을 클릭하면 AlertDialog
메시지가 표시됩니다. 내가 this
을 사용하려했지만 오류가 발생했습니다 : 생성자 AlertDialog.Builder (설정)는 정의되지 않았습니다. 그래서 getActivity()
을 사용했지만이 방법은 아무 것도 표시하지 않습니다.PreferenceFragment : onSharedPreferenceChanged()에서 AlertDialog를 시작하십시오.
또한 사람이 환경 설정을 선택하고 상자를 똑딱 선택 사이에 다른 작업을 수행하는 방법을 알고 않습니다. 당신은 어떤 환경에서 당신이 환경 설정 텍스트를 클릭 할 수있는 방법을 알았고 그것은 당신에게 설명을 줄 것입니다, 그리고 당신은 실제로 활성화/비활성화하기 위해 작은 상자를 클릭해야합니다.
public class Settings extends PreferenceFragment implements OnSharedPreferenceChangeListener{
Bundle savedInstanceState;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);
this.savedInstanceState = savedInstanceState;
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
if (key.equals("this")) {
final SwitchPreference sp = (SwitchPreference) getPreferenceScreen().findPreference(key);
if (sp.isChecked()) {
System.out.println("enabled");
} else {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage("blah...")
.setTitle("Title")
.setPositiveButton("proceed", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
System.out.println("positive");
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
sp.setChecked(true);
System.out.println("cancled");
}
})
.create();
}
}
}
여전히'System.out'을 사용하여 디버깅 할 수 있습니다.'Info' 카테고리 아래에 나타납니다. –
@ A - C 고마워, 나는 그걸 몰랐다. –