Как сохранить данные для входа в общие настройки, когда пользователь входит в систему. При повторном открытии приложения, когда в общих настройках есть данные, они должны быть направлены на основное действие, иначе - на действие входа.
1 ) как сохранить данные для входа в систему, используя общие настройки в активности входа . 2) как проверить нужно ли go выполнять основное действие или вход в систему в spla sh активность экрана .
spla sh screen Активность
public class SplashScreen extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash_screen);
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
startActivity(new Intent(SplashScreen.this, LoginAcivity.class));
finish();
}
}, 1500);
}
}
активность входа
public class LoginAcivity extends AppCompatActivity {
EditText numberEt,passwordEt;
Button submit_button;
TextView signupText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login_acivity);
numberEt=findViewById(R.id.number);
passwordEt=findViewById(R.id.password);
submit_button=findViewById(R.id.submit_button);
signupText=findViewById(R.id.sign_up_text);
signupText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(LoginAcivity.this,RegisterActivity.class));
}
});
submit_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
numberEt.setError(null);
passwordEt.setError(null);
String number =numberEt.getText().toString();
String password=passwordEt.getText().toString();
if(isValid(number,password)){
login(number,password);
}
}
});
}
SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", 0);
SharedPreferences.Editor editor = pref.edit();
private void login(final String number,final String password){
StringRequest stringRequest = new StringRequest(Request.Method.POST, Endpoints.login_url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
if(!(response.equals("Invalid Credentials"))){
editor.putInt("numberEt", Integer.parseInt(number));
editor.commit();
Toast.makeText(LoginAcivity.this,response,Toast.LENGTH_SHORT).show();
startActivity(new Intent(LoginAcivity.this,MainActivity.class));
PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("number",number).apply();
PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("city",response).apply();
LoginAcivity.this.finish();
}else{
Toast.makeText(LoginAcivity.this,response,Toast.LENGTH_SHORT).show();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(LoginAcivity.this,"Something went Wrong:(",Toast.LENGTH_SHORT).show();
Log.d("VOLLEY", Objects.requireNonNull(error.getMessage()));
}
}){
@Override
protected Map<String,String> getParams() throws AuthFailureError {
Map<String,String> params=new HashMap<>();
params.put("number",number);
params.put("password",password);
return params;
}
};
VolleySingleton.getInstance(this).addToRequestQueue(stringRequest);
}
private boolean isValid(String number, String password){
if(number.isEmpty()){
showMessage("Empty Mobile Number");
numberEt.setError("Empty Mobile Number");
return false;
}else if(password.isEmpty()){
showMessage("Empty Password");
passwordEt.setError("Empty Password");
return false;
}
return true;
}
private void showMessage(String msg){
Toast.makeText(this,msg,Toast.LENGTH_SHORT).show();
}
}
Я пробовал хранить данные в общем предпочтение с помощью редактора при входе в систему, правильно это или нет? После этого, как проверить общие предпочтения в активности экрана spla sh. помогите разобраться. спасибо :)