Java 保持警报对话框选项
我正在创建一个Java 保持警报对话框选项,java,android,android-alertdialog,Java,Android,Android Alertdialog,我正在创建一个警报对话框。下面是我正在使用的代码片段: final CharSequence[] items = {"Red", "Green", "Blue"}; AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Pick a color"); builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickList
警报对话框
。下面是我正在使用的代码片段:
final CharSequence[] items = {"Red", "Green", "Blue"};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Pick a color");
builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show();
}
});
AlertDialog alert = builder.create();
alert.show();
这很好,但我还没有弄清楚如何将选择选项保存到某个位置,以便下次打开警报对话框时,显示先前选择的选项。我不需要这个值在应用程序重新启动时保持不变,只要应用程序在后台并且没有完全被丢弃
作为Android开发新手,我发现这很难实现。使用以下代码:
private static final String SELECTED_ITEM = "SelectedItem";
private SharedPreferences sharedPreference;
private Editor sharedPrefEditor;
private void showAlert() {
final CharSequence[] items = {"Red", "Green", "Blue"};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Pick a color");
builder.setSingleChoiceItems(items, getSelectedItem(), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
saveSelectedItem(item);
Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show();
}
});
AlertDialog alert = builder.create();
alert.show();
}
private int getSelectedItem() {
if (sharedPreference == null) {
sharedPreference = PreferenceManager
.getDefaultSharedPreferences(this);
}
return sharedPreference.getInt(SELECTED_ITEM, -1);
}
private void saveSelectedItem(int item) {
if (sharedPreference == null) {
sharedPreference = PreferenceManager
.getDefaultSharedPreferences(this);
}
sharedPrefEditor = sharedPreference.edit();
sharedPrefEditor.putInt(SELECTED_ITEM, item);
sharedPrefEditor.commit();
}
第一次,将不选择任何内容。从第二次开始,默认情况下将选择先前选择的项目。使用以下代码:
private static final String SELECTED_ITEM = "SelectedItem";
private SharedPreferences sharedPreference;
private Editor sharedPrefEditor;
private void showAlert() {
final CharSequence[] items = {"Red", "Green", "Blue"};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Pick a color");
builder.setSingleChoiceItems(items, getSelectedItem(), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
saveSelectedItem(item);
Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show();
}
});
AlertDialog alert = builder.create();
alert.show();
}
private int getSelectedItem() {
if (sharedPreference == null) {
sharedPreference = PreferenceManager
.getDefaultSharedPreferences(this);
}
return sharedPreference.getInt(SELECTED_ITEM, -1);
}
private void saveSelectedItem(int item) {
if (sharedPreference == null) {
sharedPreference = PreferenceManager
.getDefaultSharedPreferences(this);
}
sharedPrefEditor = sharedPreference.edit();
sharedPrefEditor.putInt(SELECTED_ITEM, item);
sharedPrefEditor.commit();
}
第一次,将不选择任何内容。从第二次开始,默认情况下将选择先前选择的项目。这是一个简单的基本问题。这与android没有什么特别的关系。基本上,您只需像保存任何其他变量一样保存该值……在SharedReference中保存一些标志值,并在应用程序销毁/重新启动时清除该首选项。Hi JoaxTraex。你是对的。我没有对实际保存值的部分感到困惑,主要是因为我不知道下次显示对话框时如何设置正确的选项。我忽略了
setSingleChoiceItems
允许您指定预选选项的事实。我读过的关于构建AlertDialog
的大多数示例都显示了对setSingleChoiceItems
的调用为-1
。我的片段就是我的意思的一个例子。不过,我应该更彻底地阅读这些文件-|@JoxTraex问题是文档中有这样一句话:“尽管传统列表和带有单选按钮的列表都提供了“单选”操作,但您应该使用setSingleChoiceItems()如果您想保留用户的选择。也就是说,如果以后再次打开对话框应该表明用户当前的选择是什么,那么您可以创建一个带有单选按钮的列表“这是一个简单的基本问题。这与android没有什么特别的关系。基本上,您只需像保存任何其他变量一样保存该值……在SharedReference中保存一些标志值,并在应用程序销毁/重新启动时清除该首选项。Hi JoaxTraex。你是对的。我没有对实际保存值的部分感到困惑,主要是因为我不知道下次显示对话框时如何设置正确的选项。我忽略了setSingleChoiceItems
允许您指定预选选项的事实。我读过的关于构建AlertDialog
的大多数示例都显示了对setSingleChoiceItems
的调用为-1
。我的片段就是我的意思的一个例子。不过,我应该更彻底地阅读这些文件-|@JoxTraex问题是文档中有这样一句话:“尽管传统列表和带有单选按钮的列表都提供了“单选”操作,但您应该使用setSingleChoiceItems()如果要保留用户的选择。也就是说,如果以后再次打开对话框时应指明用户当前的选择,则可以创建一个带有单选按钮的列表“