1

一段代码:

if (mGamePrefs.contains(GAME_PREF_NAME)) 
{
    theName = mGamePrefs.getString(GAME_PREF_NAME, "Jane Doe");
}

但是当我在没有任何先前存储的情况下检索首选项时,没有默认值。我使用以下代码进行检索:

PreferenceLastGame gameSettings = new PreferenceLastGame(this);

String gameName  = gameSettings.getTheName();

我必须执行此代码才能获得我的默认值

if(gameName == null) gameName = "Jane Doe";

其他一切都已到位并且工作正常。为什么会失败?

GAME_PREF_NAME 定义为:

public class MeMoInfoActivity extends FragmentActivity 
{
public static final String GAME_PREFERENCES = "GamePrefs";
public static final String GAME_PREF_NAME  = "TheName";         // key string
    ........

PreferenceLastGame 只是一个类,我在其中放置了有关首选项处理的代码。

4

1 回答 1

1
if (mGamePrefs.contains(GAME_PREF_NAME)) 
{
    theName = mGamePrefs.getString(GAME_PREF_NAME, "Jane Doe");
}

您不会使用此代码获得默认值。您要做的第一件事是检查它是否包含GAME_PREF_NAME. 如果没有,则跳过它会给它一个默认值的部分

只需使用:

theName = mGamePrefs.getString(GAME_PREF_NAME, "Jane Doe");
于 2013-07-31T14:36:10.310 回答