我正在开发Android应用程序,如果用户从偏好设置屏幕中选择checkboxpreference,则希望显示AlertDialog。那么我该如何做呢?
我正在开发Android应用程序,如果用户从偏好设置屏幕中选择checkboxpreference,则希望显示AlertDialog。那么我该如何做呢?
尝试这个...
public class MyPreferences extends PreferenceActivity implements OnSharedPreferenceChangeListener {
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
final Preference preference) {
if(preference.equals("MyCheckboxPreferenceKey")) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Your Message");
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//action on dialog close
}
});
builder.show();
}
}
在你的PreferenceActivity
类中重写onSharedPreferenceChanged
方法:
public class MyPreferences extends PreferenceActivity implements OnSharedPreferenceChangeListener {
...
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
if (key.equals("MyCheckboxPreferenceKey")) {
//Show your AlertDialog here!
}
}
public class MyPreferences extends PreferenceActivity{
...
//getting current context for builder
AlertDialog.Builder build = new AlertDialog.Builder(this);
//setting some title text
build.setTitle("SomeTitle");
//setting radiobuttons list
build.setSingleChoiceItems(new String[]{"One", "Two"}, 0, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//Some behavior here
}
});
build.setNegativeButton("Cancel", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//Might be empty
}
});
//creating dialog and showing
AlertDialog dialog = build.create();
dialog.show();
}
就这些了。