我在点击AlertDialog
时尝试显示SwitchPreference
消息。我试图使用this
,但是我收到了一个错误:构造函数AlertDialog.Builder(设置)未定义。所以我使用了getActivity()
,但这种方法没有显示任何内容。
也有人知道如何在选择偏好和选择勾选方框之间执行不同的操作。你知道在某些设置中如何点击首选项文本它会给你一个描述,然后你必须点击小方框来实际启用/禁用。
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();
}
}
}
答案 0 :(得分:1)
完成AlertDialog
的构建后,最后一次通话应为AlertDialog.Buidler.show()
,而不是AlertDialog.Builder.create()
。但是,如果您致电create()
,稍后您可以使用Dialog.show()
。
另请注意,您可能希望使用Log
进行调试,而不是System.out
。