Android 值不是';未保存在SharedReferences中
我已经在android上创建了一个共享偏好屏幕,以接收从共享偏好屏幕到主屏幕的信息,一切正常,但偏好屏幕中的值没有保存,每次我都必须打开共享偏好屏幕并手动键入信息。。。有没有自动保存首选项的建议 这是共享perefrence代码:Android 值不是';未保存在SharedReferences中,android,screen,Android,Screen,我已经在android上创建了一个共享偏好屏幕,以接收从共享偏好屏幕到主屏幕的信息,一切正常,但偏好屏幕中的值没有保存,每次我都必须打开共享偏好屏幕并手动键入信息。。。有没有自动保存首选项的建议 这是共享perefrence代码: Button b1 = (Button)findViewById(R.id.SavePreff); b1.setOnClickListener(new View.OnClickListener() { @Override
Button b1 = (Button)findViewById(R.id.SavePreff);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String ID_NO = ID_NUMBER.getText().toString();
SharedPreferences prefsExample = getSharedPreferences(PREFS, 0);
SharedPreferences.Editor editor = prefsExample.edit();
editor.putString("idNumber", ID_NO);
if (rd1.isChecked())
editor.putString("Network", "STC");
else if (rd2.isChecked())
editor.putString("Network", "Mobily");
else
editor.putString("Network", "Zain");
editor.commit();
Intent i = new Intent(SharedPref.this , MainActivity.class);
startActivity(i);
}
});
这是我使用的主要活动屏幕上的信息:
b1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences example = getSharedPreferences(PREFS, 0);
String ID_NUM = example.getString("idNumber", "123432");
String NETWORK = example.getString("Network", "STC");
String called_num = "";
if (NETWORK.equals("Mobily"))
called_num = "*1400*" + CODE_CHARGE.getText().toString() + "*"+ ID_NUM+ Uri.encode("#");
else if (NETWORK.equals("STC"))
called_num = "*155*" + CODE_CHARGE.getText().toString() + "*"+ ID_NUM+ Uri.encode("#");
else if (NETWORK.equals("Zain"))
called_num = "*141*" + ID_NUM + "*"
+ CODE_CHARGE.getText().toString()+ Uri.encode("#");
Intent i = new Intent("android.intent.action.CALL");
Uri data = Uri.parse("tel:" + called_num);
i.setData(data);
startActivity(i);
}
});
共享的首选项类似于这两个
//example1 for Shared Prefs that lasts forever
example1= PreferenceManager.getDefaultSharedPreferences(this);
//example for Shared Prefs that lasts only just once each time program is running
example2= getApplicationContext().getSharedPreferences("PREFS", Activity.MODE_PRIVATE);
在代码中,使用
example1= PreferenceManager.getDefaultSharedPreferences(this);
希望这对您有用。尝试使用默认的共享首选项,这为我解决了问题。有任何代码建议吗?请检查我的答案@Abdullahadhai许多建议?我没有GetDefaultSharedReferences();在选项中,我在编写时出错,并且它不允许使用Context。请在
onCreate()
中的setContentView
之后定义共享首选项。因此,请将代码移动到onCreate()
SharedReferences preferences=GetDefaultSharedReferences(此选项);无法工作GetDefaultSharedReferences(SharedReferences)方法对于SharedReferences类型是未定义的。它太长了,但是您能给我一个解决方案或任何项目的链接吗??