如何使用共享的首选项固定显示的价值?

时间:2019-06-22 10:53:48

标签: java android sharedpreferences

我使用SharedPreferences在每个活动中存储TextView值,并在显示活动中显示所有活动EditText值。 我之前已经完成了3个活动的代码,并且效果很好。 我为11个活动做了精确的编码,但是没有用。 在EditText中显示的值为空白。

我已经尝试使用EditText或TextView,但两个都没有显示。 早期,该项目运行良好,没有共同的偏好。我现在需要共享的偏好设置,以便用户单击上一个按钮时项目不会破坏文本值。这是展示广告活动的代码

editText = findViewById(R.id.editText2);

    SharedPreferences oshap = getSharedPreferences("om", Context.MODE_PRIVATE);

    SharedPreferences wshap = getSharedPreferences("wm", Context.MODE_PRIVATE);

    SharedPreferences tshap = getSharedPreferences("tm", Context.MODE_PRIVATE);

    SharedPreferences fshap = getSharedPreferences("fm", Context.MODE_PRIVATE);

    SharedPreferences fishap = getSharedPreferences("fim", Context.MODE_PRIVATE);

    SharedPreferences sishap = getSharedPreferences("sm", Context.MODE_PRIVATE);

    SharedPreferences seshap = getSharedPreferences("sem", Context.MODE_PRIVATE);

    SharedPreferences eigshap = getSharedPreferences("eig", Context.MODE_PRIVATE);

    SharedPreferences nishap = getSharedPreferences("ni", Context.MODE_PRIVATE);

    SharedPreferences tenshap = getSharedPreferences("tens", Context.MODE_PRIVATE);

    String o=oshap.getString("om","");

    String tw=wshap.getString("wm","");

    String th=tshap.getString("tm","");

    String fo=fshap.getString("fm","");

    String fi=fishap.getString("fim","");

    String siix=sishap.getString("sm","");

    String seev=seshap.getString("sem","");

    String ei=eigshap.getString("eig","");

    String nin=nishap.getString("ni","");

    String teno=tenshap.getString("tens","");

String result = o + tw + th + fo + fi + siix + seev + ei + nin + teno;

    editText.setText(result);

我不能在此处粘贴整个项目,因为它不适合在这里放置,而且是多余的。下面的简短代码是从中传递textvalue的Activity One。所有活动中都使用相同的行来传递值。只有键和对象的名称会相应更改。

SharedPreferences oshap = getSharedPreferences(“ om”,Context.MODE_PRIVATE);

                SharedPreferences.Editor edion = oshap.edit();

                edion.putString("otxt", txt.getText().toString());

                edion.apply();

                startActivity(new Intent(one.this, two.class));

输出应该是所有字符串串联在一起的结果。 如果通过所有活动TextView传递的字符串为:A,B,C,... 那么Display Activity EditText应该是:ABC ....

1 个答案:

答案 0 :(得分:0)

在此行中以“ om”名称声明:

  SharedPreferences oshap = getSharedPreferences("om", Context.MODE_PRIVATE);

在这一行中,您输入了“ otxt”键:

edion.putString("otxt", txt.getText().toString());

最后得到带有“ om”键的字符串,该字符串永远不会被制成:

String o=oshap.getString("om","");
据我所知,这是错误的。但是我敢打赌,其余的事情都发生了。将对象名称与键混合在一起。