android - 我可以使用 sharedPreferences 文件中的项目填充 AlertDialog 吗?

标签 android sharedpreferences android-alertdialog

我已经像下面这样设置了 SharedPreferences:

Editor editor = getSharedPreferences("FileName", MODE_PRIVATE).edit();
        editor.clear();
        editor.putString("chicago", "Chicago, IL");
        editor.putString("london", "London, UK");
            editor.putString("sanjose", "San Jose, CA");
            editor.putString("washington", "Dulles, VA");
        editor.commit();

目前我正在从一个数组中填充 AlertDialog,我想使用 SharedPreferences 文件以便我最终可以动态添加项目等。

我现在用来填充的代码是:

private void openServerDialog() {
        new AlertDialog.Builder(this)   
        .setTitle(R.string.server_title)
        .setItems(R.array.serverchoice, 
                new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialoginterface,
                    int i) {
                setServer(i);   
            }
        })
        .show();
    }

所以我只想停止使用数组“serverchoice”,而是使用 SharedPreferences 文件中的字符串。

提前致谢

最佳答案

您可以使用 SharedPreferences 对象的 getString() 方法从共享首选项中检索字符串。参见 the documentation for SharedPreferences .

编辑: OP 发表评论后调整答案。

private void openServerDialog() {
    SharedPreferences sharedPrefs = getSharedPreferences("FileName", MODE_PRIVATE);
    Map<String, ?> sharedPrefsMap = sharedPrefs.getAll();
    ArrayList<String> stringArrayList = sharedPrefsMap.values();
    CharSequence[] prefsCharSequence = stringArrayList.toArray(new CharSequence[stringArrayList.size()]);

    new AlertDialog.Builder(this)   
    .setTitle(R.string.server_title)
    .setItems(prefsCharSequence, 
    new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialoginterface,
            int i) {
            setServer(i);   
        }
    })
    .show();
}

关于android - 我可以使用 sharedPreferences 文件中的项目填充 AlertDialog 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12534258/

相关文章:

面向多个客户的 Android 构建配置

java - 强制关闭 notes.java (sharedpreferences)

android - 如果我设置 Activity 主题,那么该 Activity 的弹出窗口不应该改变,这可能吗?

android - 在maven中构建android项目时出现内存不足错误

android - 如何在索尼爱立信 X10i 上进行调试

android - 在 fragment 中加载 preferenceactivity 值错误

android - Shared-preferences 仅适用于 Fragment Activity

java - 如何使我的 AlertDialog 标题居中?

android - 如何在 onGeolocationPermissionsShowPrompt 中显示弹出窗口

android - ListView 中的画廊小部件