Java Android SharedReferences示例
我试图学习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
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);