带有 SharedPreferences 的 Spinner [英] Spinner with SharedPreferences

查看:50
本文介绍了带有 SharedPreferences 的 Spinner的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

晚上好.我试图保存用户在 SharedPreferences 中的 Spinner 中所做的选择,当他单击确定"时,但我没有得到它,有人可以帮助我吗?然后我想赎回它再次打开应用程序并将其放入 textView 时所做的选择.

Good evening. I'm trying to save the choice the user makes in Spinner in SharedPreferences, when he clicks OK, but I'm not getting it, can anyone help me? Then I want to redeem the choice made when it opens the application again and puts it in a textView.

关注我的代码.

mShowDialog = (Button) findViewById(R.id.btnEscolhaCidade);

    mShowDialog.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            AlertDialog.Builder mBuilder = new AlertDialog.Builder(MainActivity.this);
            View mView = getLayoutInflater().inflate(R.layout.dialog_spinner, null);
            mBuilder.setTitle("Em qual Cidade Você está?");

            final Spinner mSpinner = (Spinner) mView.findViewById(R.id.spinner2);
            ArrayAdapter<String> adapter3 = new ArrayAdapter<String>(MainActivity.this,
                    android.R.layout.simple_spinner_item,
                    getResources().getStringArray(R.array.cidades));
            adapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            mSpinner.setAdapter(adapter3);

            mBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    if (!mSpinner.getSelectedItem().toString().equalsIgnoreCase("Escolha uma Cidade")) {
                        cidade_Escolhida.setText(mSpinner.getSelectedItem().toString());
                        SharedPreferences.Editor editor = preferences2.edit();
                        editor.putString(getString(R.string.cidade_escolhida_salvo), mSpinner.getSelectedItem().toString());
                        editor.apply();

                                Toast.makeText(MainActivity.this,
                                mSpinner.getSelectedItem().toString(),
                                Toast.LENGTH_LONG)
                                .show();
                        dialogInterface.dismiss();
                    }

                }
            });

            mBuilder.setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    dialogInterface.dismiss();

                }
            });
            mBuilder.setView(mView);
            AlertDialog dialog = mBuilder.create();
            dialog.show();
        }
    });

推荐答案

检查这个,

public class PreferenceManager {
private Context context;
private SharedPreferences sharedPreferences;
private SharedPreferences.Editor editor;


public PreferenceManager(Context context) {
    this.context = context;
    sharedPreferences = context.getSharedPreferences("General", Context.MODE_PRIVATE);
    editor = sharedPreferences.edit();
    editor.apply();
}

public void saveString(String key, String value) {
    editor.putString(key, value);
    editor.commit();
}

public String getString(String key) {
    return sharedPreferences.getString(key, "NA");
}
}

保存字符串

PreferenceManager preferenceManager = new PreferenceManager(context);
preferenceManager.saveString("key","StringValue");

像这样获取存储的字符串

get the stored string like this

 PreferenceManager preferenceManager = new PreferenceManager(context);
 String savedString = preferenceManager.getString("key");

这篇关于带有 SharedPreferences 的 Spinner的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆