Android - 具有共享偏好值的显示按钮

时间:2015-07-22 07:48:24

标签: android android-spinner

我目前正在使用一个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);
}

3 个答案:

答案 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);
    }
}