मैं ऐप का उपयोग शुरू करने से पहले उपयोगकर्ता द्वारा लॉग इन किया गया है या नहीं, यह देखने के लिए साझा संदर्भों का उपयोग करने का प्रयास कर रहा हूं। मैं जब में उपयोगकर्ता लॉग shredpreferences में उपयोगकर्ता नाम को बचाने के।एंड्रॉइड - साझा संदर्भ वापस शून्य मान
Login.java
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
Button btnLogin = (Button) findViewById(R.id.buttonlogin);
btnLogin.setOnClickListener(new View.OnClickListener() {
public void onClick(View adapt) {
EditText usernameEditText = (EditText) findViewById(R.id.EditUserName);
userName = usernameEditText.getText().toString();
EditText passwordEditText = (EditText) findViewById(R.id.EditPassword);
userPassword = passwordEditText.getText().toString();
if (userName.matches("") && userPassword.matches("")) {
toast("Please enter Username and Password");
return;
} else if (userName.matches("") || userName.equals("")) {
toast("Please enter Username");
return;
} else if (userPassword.matches("") || userPassword.equals("")) {
toast("Please enter Password");
return;
} else {
SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("MEM1", userName);
editor.commit();
new DownloadFilesTask().execute();
}
}
});
}
private void toast(String text) {
Toast.makeText(this, text, Toast.LENGTH_SHORT).show();
}
private class DownloadFilesTask extends AsyncTask<Void, Void, Void> {
protected void onPreExecute() {
}
protected void onPostExecute(Void result) {
toast("user logged in");
startActivity(new Intent(Login.this, MainActivity.class));
finish();
}
@Override
protected Void doInBackground(Void... params) {
return null;
}
}
}
और मैं उपयोगकर्ता नाम मान की जाँच करने से पहले मैं अपने MainActivity शुरू करने की कोशिश की।
SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
String username =sharedPreferences.getString("MEM1", "");
if(username.equalsIgnoreCase("")||username.length()==0)
{
toast("username is null");
startActivity(new Intent(MainActivity.this, Login.class));
finish();
}
लेकिन उपयोगकर्ता नाम हमेशा शून्य है। कृपया मदद करे। धन्यवाद
बुला तो अपना उपयोगकर्ता नाम कभी अशक्त था, क्योंकि यह एक शून्य मान की एक विधि कॉल करने के लिए संभव नहीं है अपने अनुप्रयोग क्रैश हो सकता वरीयताओं के लिए नाम निर्धारित किया है। और यदि आप रिक्त तारों की जांच करना चाहते हैं तो यह उपयोग करना बेहतर है()। –