0
我試圖在單擊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的類別下。 – 2013-03-04 00:32:04
@ A - C謝謝,我不知道。 – 2013-03-04 00:32:56