从try catch块访问字符串值

时间:2016-04-04 13:35:14

标签: android string try-catch parameter-passing

我在OnCreate中调用一个方法,如下所示

1 / 3

此方法定义

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.game);
    GetScore();

现在我要做的是将json字符串的值存储在onSuccess方法内的fetchlivescore textview中 但我想在Oncreate方法上也使用这个值,即当我下次显示一个toast或一个包含与Onsuccess方法中存储的相同值的textview时打开应用程序。 我怎么能实现这个目标?我已经尝试了很多东西,但没有任何作用,因为下次在oncreate方法中没有显示存储的值,它总是显示为空

3 个答案:

答案 0 :(得分:0)

我会使用SharedPreferences。它是一个键值 - 存储的内容和内容在应用程序重新启动时保持不变。

答案 1 :(得分:0)

保存分数的一种方法是在onSuccess()方法中使用SharedPreferences。

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString("key_score", score);
editor.commit();

onCreate()中,您只需阅读存储的值。

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
String score = sharedPref.getString("key_score");

如果您在活动中 - 请使用this代替getActivity()

答案 2 :(得分:0)

如果您希望稍后将该值存储在某处,则需要将该值存储在某处。 如果它只是单个值,那么SharedPreferences可能是解决方案:

var hints = new Bloodhound({
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace("value"),
    queryTokenizer: Bloodhound.tokenizers.whitespace,
    remote: {
        url: "/ProjectAssociation/CountryLookup?query=%QUERY",
        wildcard: "%QUERY"
    }
});
$("#assocStoragesSelection").typeahead(null, {
    name: "nations",
    limit: 90,
    valueKey: "ShortCode",
    displayKey: "Name",
    source: hints,
    templates: {
        empty: [
            "<div class='noitems'>",
            "No Items Found",
            "</div>"
        ].join("\n")
    }
});

在onResume中,您可以使用以下内容设置TextView:

SharedPreferences prefs = getSharedPreferences("preferences...", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("score", score);
editor.commit();