[英]Android how can I check user logged in or logged out using Shared Preferences
[英]How to use shared preferences in android with JSON to keep a user logged in?
我有一個應用程序,每次退出時,我都被要求重新登錄。 我希望我的應用程序讓用戶保持登錄狀態。我不知道從哪里開始。 我有點新使用 android 中的 JSON 的共享偏好。如果你們中的任何人可以幫助我,請告訴我。 學校項目急需它。 謝謝
這是我的 sign_in.java:
public class sign_in extends AppCompatActivity {
private EditText username,password;
private Button btnSignIn;
private RequestQueue requestQueue;
private static final String URL = "http://192.168.1.2:80/OrgSpace/API/user_control.php";
private StringRequest request;
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sign_in);
username = (EditText) findViewById(R.id.username);
password = (EditText) findViewById(R.id.password);
btnSignIn = (Button) findViewById(R.id.btnSignIn);
requestQueue = Volley.newRequestQueue(this);
btnSignIn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
request = new StringRequest(Request.Method.POST, URL, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonObject = new JSONObject(response);
if(jsonObject.names().get(0).equals("success")){
Toast.makeText(getApplicationContext(),"SUCCESS "+jsonObject.getString("success"),Toast.LENGTH_SHORT).show();
startActivity(new Intent(getApplicationContext(),menu.class));
}else {
Toast.makeText(getApplicationContext(), "Error" +jsonObject.getString("error"), Toast.LENGTH_SHORT).show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
HashMap<String,String> hashMap = new HashMap<String, String>();
hashMap.put("username",username.getText().toString());
hashMap.put("password",password.getText().toString());
return hashMap;
}
};
requestQueue.add(request);
}
});
}
}
這是我的啟動畫面:
public class MainActivity extends AppCompatActivity {
Handler h = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
h.postDelayed(new Runnable() {
@Override
public void run() {
Intent i = new Intent(MainActivity.this, starting_page.class);
startActivity(i);
finish();
}
}, 5000);
}
}
這是他們在 starting_page.java 啟動畫面后看到的:
public class starting_page extends AppCompatActivity {
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_starting_page);
textView=findViewById(R.id.register);
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i1 = new Intent (starting_page.this, registration.class);
startActivity(i1);
}
});
}
public void signin(View view) {
Intent intent=new Intent(starting_page.this, sign_in.class);
startActivity(intent);
}
public void btnContinue(View view) {
Intent intent=new Intent(starting_page.this, menu.class);
startActivity(intent);
}
}
這就是您可以在共享首選項中設置值的方法。
SharedPreferences sharedPreferences =
PreferenceManager.getDefaultSharedPreferences(activity /* Activity context */);
SharedPreferences.Editor myEdit = sharedPreferences.edit();
myEdit.putString("preferenceName", "preferenceValue");
// Once the changes have been made,
// we need to commit to apply those changes made,
// otherwise, it will throw an error
myEdit.commit();
這就是您如何從共享偏好中獲取存儲值的方法。
SharedPreferences sharedPreferences =
PreferenceManager.getDefaultSharedPreferences(activity /* Activity context */);
String name = sharedPreferences.getString("preferenceKey", "defaultValue");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.