我使用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 ....
答案 0 :(得分:0)
在此行中以“ om”名称声明:
SharedPreferences oshap = getSharedPreferences("om", Context.MODE_PRIVATE);
在这一行中,您输入了“ otxt”键:
edion.putString("otxt", txt.getText().toString());
最后得到带有“ om”键的字符串,该字符串永远不会被制成:
String o=oshap.getString("om","");
据我所知,这是错误的。但是我敢打赌,其余的事情都发生了。将对象名称与键混合在一起。