Android 共享首选项返回location not int

Android 共享首选项返回location not int,android,Android,我正在使用共享首选项编辑器存储要保存的数字,并在另一个类中使用。在我的项目中,这是我保存数据的源: public void overallEditor(){ SharedPreferences.Editor editor = someData.edit(); editor.putInt("winsOverall", winsOverall); editor.putInt("losesOverall", losesOverall);

我正在使用共享首选项编辑器存储要保存的数字,并在另一个类中使用。在我的项目中,这是我保存数据的源:

public void overallEditor(){
        SharedPreferences.Editor editor = someData.edit();
        editor.putInt("winsOverall", winsOverall);
        editor.putInt("losesOverall", losesOverall);
        editor.putInt("tiesOverall", tiesOverall);
        editor.commit();
    }
这是我检索数据的源:

private void getStats() {
        // TODO Auto-generated method stub
        SharedPreferences someData = getSharedPreferences(filename, 0);
        bestStreakStatsi = someData.getInt("newBestStreak", 0);
        winsOverall = someData.getInt("winsOverall", 0);
        tiesOverall = someData.getInt("tiesOverall", 0);
        losesOverall = someData.getInt("losesOverall", 0);
    }
发生了什么事

这是我第一节课的资料来源,如果您需要更多资料,我可以提供,但我删掉了不相关的内容:

int wins, ties, loses, choice, streak, bestStreak, z, winsOverall, losesOverall, tiesOverall;

    private void refresh(){
            winrep.setText(w + wins);
            loserep.setText(l + loses);
            tierep.setText(t + ties);
            SharedPreferences.Editor editor = someData.edit();
            editor.putInt("winsp", wins);
            editor.putInt("losesp", loses);
            editor.putInt("tiesp", ties);
            editor.putInt("streakp", streak);
            editor.commit();
            overallEditor();
        }
        public void overallEditor(){
            SharedPreferences.Editor editor = someData.edit();
            editor.putInt("winsOverall", winsOverall);
            editor.putInt("losesOverall", losesOverall);
            editor.putInt("tiesOverall", tiesOverall);
            editor.commit();
        }
这是它应该检索Int的位置:

public class stats extends Activity{
    public static String filename = "stats";
    TextView bestStreakStats, overallWins, overallLoses, overallTies;
    int bestStreakStatsi, winsOverall, losesOverall, tiesOverall;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.stats);
        initizialize();
        getStats();
        displayStats();
    }
    private void displayStats() {
        // TODO Auto-generated method stub
        bestStreakStats.setText("You best winning streak: \t" + bestStreakStatsi);
        overallWins.setText("Your overall wins: \t" + overallWins);
        overallLoses.setText("Your overall loses: \t" + overallLoses);
        overallTies.setText("Your overall ties: \t" + overallTies);
    }
    private void getStats() {
        // TODO Auto-generated method stub
        SharedPreferences someData = getSharedPreferences(filename, 0);
        bestStreakStatsi = someData.getInt("newBestStreak", 0);
        winsOverall = someData.getInt("winsOverall", 0);
        tiesOverall = someData.getInt("tiesOverall", 0);
        losesOverall = someData.getInt("losesOverall", 0);
    }
    private void initizialize() {
        // TODO Auto-generated method stub
        bestStreakStats = (TextView) findViewById(R.id.tvBestStreakStats);
        overallWins = (TextView) findViewById(R.id.tvOverallWins);
        overallLoses = (TextView) findViewById(R.id.tvOverallLoses);
        overallTies = (TextView) findViewById(R.id.tvOverallTies);
    }
}

发生这种情况的原因很可能是因为您正在这样做

[TextView Object].getText();
这是不正确的,应该是:

[TextView Object].getText().toString();
overallWins.setText("Your overall wins: \t" + winsOverall);
更新 你真的需要修正你的命名惯例。发生这种情况的原因是您在displayStats()方法中显示了错误的对象

对于一些建议,我建议您的文本视图使用这种命名约定

TextView tx_[somename];
你的价值观呢

int value_[somename]

我认为你的问题在于你引用了错误的变量。你是说

overallWins.setText("Your overall wins: \t" + overallWins);
但我认为应该是:

[TextView Object].getText().toString();
overallWins.setText("Your overall wins: \t" + winsOverall);

对于
.setText
的其余部分也是如此。看看这是否有帮助。

返回位置。。。?我们在这里看到了什么证据?相反,您的方法名overallEditor()没有任何意义。应该类似于updateUserStatsPreference(int[]gamestate)。@JoxTraex@JoxTraex我现在真的不想玩数组,也许以后在开发中,但谢谢你的建议:)你真的需要修正你的命名约定。发生这种情况的原因是您显示了错误的对象@macmitterderim没有检索文本,我正在检索IntSplese,请使用相应的代码行更新您的原始帖子。您用于这些首选项的对象也包括在内@麦克米特雷迪!明白了,你要灵活地改变,如果它解决了你的问题,别忘了把它作为答案@macmittered!理想情况下,他不应该从TextView中检索文本,而是从整数值中检索文本。我想这就是我们的初衷。