我目前正在使用一个Activity来保存来自Button1 ... button8的文本。
但它不显示button的文字。我不明白。
MainActivity =>
public void getName(){
SharedPreferences preferences = getSharedPreferences("sample",0);
int a=(preferences.getInt("num",0));
String ab=(preferences.getString("Name",""));
if(a==0){
button1.setVisibility(View.GONE);
button1.setVisibility(View.VISIBLE);
button1.setText(ab);
}
if(a==1){
button2.setVisibility(View.GONE);
button2.setVisibility(View.VISIBLE);
button2.setText(ab);
}
if(a==3){
button3.setVisibility(View.GONE);
button3.setVisibility(View.VISIBLE);
button3.setText(ab);
}
}
SetupActivity =>
public void onClick(View v) {
SharedPreferences preferences = getSharedPreferences("Sample", 0);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("Name", editText.getText().toString());
editor.putInt("num", myNum);
editor.commit();
Intent intent = new Intent(Setup.this, MainActivity.class);
startActivity(intent);
}
答案 0 :(得分:4)
检查您的首选项名称,您正在使用
getSharedPreferences("Sample", 0);
和
getSharedPreferences("sample",0);
答案 1 :(得分:1)
不显示按钮文字
那是因为(preferences.getString(“Name”,“”)默认返回“”,这可能就是这种情况。
另外还有以下几行:
button_.setVisibility(View.GONE);
button_.setVisibility(View.VISIBLE);
真的没有意义。你可以放弃这条线:
button_.setVisibility(View.GONE);
答案 2 :(得分:1)
首先从getName方法中删除此行
button_.setVisibility(View.GONE);
然后查看您正在使用的KEY以保存案例中按钮的名称您使用Sample名称保存并将其作为样本检索。请记住,密钥区分大小写。
如果你写了关键的" Sample"只是为了向我们展示这个问题。在开始之前,我想问你在mainActivity中调用方法getName的位置。但无论如何,这是安全的方式:
保存按钮名称时添加以下行
public void onClick(View v) {
SharedPreferences preferences = getSharedPreferences("Sample", 0);
SharedPreferences.Editor editor = preferences.edit();
if(editText.getText().toString().length()>0){
editor.putString("Name", editText.getText().toString());
editor.putInt("num", myNum);
editor.commit();
Intent intent = new Intent(Setup.this, MainActivity.class);
startActivity(intent);}
}
并在getName方法中执行此操作
public void getName(){
SharedPreferences preferences = getSharedPreferences("sample",0);
int a=(preferences.getInt("num",0));
String ab=(preferences.getString("Name",""));
if(a==0){
button1.setVisibility(View.VISIBLE);
button1.setText(ab);
}
if(a==1){
button2.setVisibility(View.VISIBLE);
button2.setText(ab);
}
if(a==3){
button3.setVisibility(View.VISIBLE);
button3.setText(ab);
}
}