Android 使用登录系统共享数据引用
我有一个登录和用户系统的项目。我想我的程序应该离线和在线工作。联机时可以从数据库检索,但脱机时必须使用设备上的SharedReferences值。 不管怎样,我尝试了这个方法,但每次我都会给出“NULL”->(如果没有收到任何东西,就返回这个) QrcodeID保存为MyQRCodeID字符串Android 使用登录系统共享数据引用,android,android-sharedpreferences,Android,Android Sharedpreferences,我有一个登录和用户系统的项目。我想我的程序应该离线和在线工作。联机时可以从数据库检索,但脱机时必须使用设备上的SharedReferences值。 不管怎样,我尝试了这个方法,但每次我都会给出“NULL”->(如果没有收到任何东西,就返回这个) QrcodeID保存为MyQRCodeID字符串 editor.putString("MyQRCodeID",QRCodeID); 如果MyQRCodeID中有QRCodeID,我想在这里发送QRCodeID,所以在一次之前登录,它必须保存在那里
editor.putString("MyQRCodeID",QRCodeID);
如果MyQRCodeID中有QRCodeID,我想在这里发送QRCodeID,所以在一次之前登录,它必须保存在那里,否则返回QRCodeID(第一次使用或任何错误)
i.putExtra(“QRCodeID”,preferences.getString(“MyQRCodeID”,QRCodeID))代码>
我的作用域代码:
public class CheckLogin extends AsyncTask<String, String, String> {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = preferences.edit();
String z = "";
Boolean isSuccess = false;
@Override
protected void onPreExecute() {
progressBar.setVisibility(View.VISIBLE);
}
@Override
protected void onPostExecute(String r) {
progressBar.setVisibility(View.GONE);
Toast.makeText(LoginActivity.this, r, Toast.LENGTH_SHORT).show();
if (isSuccess) {
Toast.makeText(LoginActivity.this, "Başarıyla Giriş Yapıldı", Toast.LENGTH_SHORT).show();
Intent i = new Intent(getApplicationContext(), MainActivity.class);
i.putExtra("Name", Name);
i.putExtra("Surname", Surname);
i.putExtra("Gsm", Gsm);
i.putExtra("KategoriID", KategoriID);
editor.putString("MyQRCodeID",QRCodeID); //QrcodeID saving to MyQRCodeID string i.putExtra("QRCodeID",preferences.getString("MyQRCodeID",QRCodeID) );//I want to here send QRCodeID if avaiable in MyQRCodeID , so login before one time , it must be save in there , else return QRCodeID ( first time using or any error )
i.putExtra("OnayID", OnayID);
i.putExtra("Email", Email);
i.putExtra("UserID", UserID);
i.putExtra("Password", Password);
i.putExtra("sharedqr",preferences.getString("MyQRCodeID","NULL")); //I created this for check sharedpreferences working, you can ignore this.
startActivity(i);
//finish();
}
}
公共类CheckLogin扩展异步任务{
SharedReferences preferences=PreferenceManager.GetDefaultSharedReferences(getApplicationContext());
SharedReferences.Editor=首选项.edit();
字符串z=“”;
布尔值isSuccess=false;
@凌驾
受保护的void onPreExecute(){
progressBar.setVisibility(View.VISIBLE);
}
@凌驾
受保护的void onPostExecute(字符串r){
progressBar.setVisibility(View.GONE);
Toast.makeText(LoginActivity.this,r,Toast.LENGTH_SHORT).show();
如果(isSuccess){
Toast.makeText(LoginActivity.this,“Başarıyla GirişYapıldı”,Toast.LENGTHıu SHORT).show();
Intent i=新的Intent(getApplicationContext(),MainActivity.class);
i、 putExtra(“名称”,名称);
i、 Puttera(“姓氏”,姓氏);
i、 putExtra(“Gsm”,Gsm);
i、 putExtra(“KategoriID”,KategoriID);
editor.putString(“MyQRCodeID”,QRCodeID);//QRCodeID保存到MyQRCodeID字符串i.putExtra(“QRCodeID”,preferences.getString(“MyQRCodeID”,QRCodeID));//我想在这里发送QRCodeID,如果在MyQRCodeID中可用,那么在登录一次之前,它必须保存在那里,否则返回QRCodeID(第一次使用或任何错误)
i、 putExtra(“OnayID”,OnayID);
i、 putExtra(“电子邮件”,Email);
i、 putExtra(“UserID”,UserID);
i、 putExtra(“密码”,Password);
i、 putExtra(“sharedqr”,preferences.getString(“MyQRCodeID”,“NULL”);//我创建此项是为了检查SharedReferences是否正常工作,您可以忽略此项。
星触觉(i);
//完成();
}
}
更改此选项
editor.putString("MyQRCodeID",QRCodeID);
到
改变这个
editor.putString("MyQRCodeID",QRCodeID);
到
您没有保存更改。请在putString()
之后调用editor.apply()
或editor.commit()
您没有保存更改。在putString()之后调用editor.apply()
或editor.commit()
?如果将QRCodeID作为字符串插入,它的值是多少?它是否为空?编辑器.apply()在哪里?
?如果将QRCodeID作为字符串插入,它的值是多少?它是否为空?谢谢,这是使用from editor.commit()或editor.apply()editor.commit()更有效的方法;如果进行了更改,则返回true。editor.apply();不返回任何内容,速度快且效率高。谢谢,使用from editor.commit()或editor.apply()editor.commit()更有效;如果进行了更改,则返回true。editor.apply();不返回任何内容,速度快且效率高。