Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android SharedReferences示例_Java_Android_Sharedpreferences - Fatal编程技术网

Java Android SharedReferences示例

Java Android SharedReferences示例,java,android,sharedpreferences,Java,Android,Sharedpreferences,我试图学习SharedReferences,但我遇到了一个错误 我的布局有一个按钮,可重新作用于方法doThis 这是我的java: package com.example.sharedprefs; import android.app.Activity; import android.content.SharedPreferences; import android.os.Bundle; import android.view.View; import android.widget.Toas

我试图学习SharedReferences,但我遇到了一个错误

我的布局有一个按钮,可重新作用于方法
doThis

这是我的java:

package com.example.sharedprefs;

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends Activity {
    int i = 0;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    }

    public void doThis (View view){
        i++;
        SharedPreferences sharedPref = getSharedPreferences("FileName",MODE_PRIVATE);
        SharedPreferences.Editor prefEditor = sharedPref.edit();
        prefEditor.putInt("userChoice",i);
        prefEditor.commit();
        int number = sharedPref.getInt("userChoice", 0);
        Toast.makeText(getApplicationContext(), number, Toast.LENGTH_LONG).show();
    }

}
我在logcat中唯一能指出的是
10-15 19:28:17.707:E/AndroidRuntime(16657):由以下原因引起:android.content.res.Resources$NotFoundException:String resource ID#0x1

您的祝酒词不正确。您正在向toast传递一个数字,希望它能给出一个字符串,而不是认为它应该查找字符串资源值。尝试:

Toast.makeText(getContext(), number + "" , Toast.LENGTH_LONG).show();

编辑,除此之外,您的代码很好。

您不能为Toast消息创建整数类型

您只能将字符串类型放入Toast.makeText方法的消息参数中

至于解决方案,你可以试试这些

Toast.makeText(getApplicationContext(), Integer.toString(number), Toast.LENGTH_LONG).show();

Toast.makeText(getApplicationContext(), ""+number, Toast.LENGTH_LONG).show();

是的,您的SharedReference用法非常好。

这里的问题是您正在使用一个整数值作为Toast字符串。您必须执行以下操作

String.valueOf(number);

您的SharedReferences部分正常。但是,有关SharedReferences的更多信息,您可以访问此帖子。

完美。谢谢,有人能评论我的实际
SharedRef
代码的正确性吗?它写得正确吗?@EGHDK,是的,本质上是正确的。然而,我将把它[承诺]放在它自己的方法中。这个问题在5年前得到了回答。。。但是谢谢!
Integer.toString(number);