ใส่โค๊ด Android Shared Preferences แล้วอยู่แต่หน้าหลัก เข้าล็อกอินได้ครั้งเดียว แล้วมันอยู่แต่หน้าหลักคะ กดออกจากระบบก็ไม่ได้
เพิ่มในส่วนของ Android Shared Preferences แล้วกดไปหน้าอื่นไม่ได้คะ ล้อกอินเข้าได้แล้วค้างอยู่หน้าหลัก กดออกจากระบบ ก็ไม่ไปไหนเลย ช่วยหน่อยคะ ว่าผิดตรงไหน
Android Shared Preferences
//Android Shared Preferences
@Override
protected void onPostExecute(String r) {
pbbar.setVisibility(View.GONE);
Toast.makeText(SigninActivity.this, r, Toast.LENGTH_SHORT).show();
if (isSuccess) {
SharedPreferences.Editor edit = shp.edit();
edit.putString("UserId", userid);
edit.commit();
Intent i = new Intent(SigninActivity.this, HeadMainActivity.class);
startActivity(i);
finish();
}
}
//Android Shared Preferences
หน้าล็อกอิน
public class SigninActivity extends Activity {
ConnectionClass connectionClass;
EditText edtuserid, edtpass;
Button btnlogin;
ProgressBar pbbar;
SharedPreferences shp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_signin);
connectionClass = new ConnectionClass();
edtuserid = (EditText) findViewById(R.id.edtuserid);
edtpass = (EditText) findViewById(R.id.edtpass);
btnlogin = (Button) findViewById(R.id.btnlogin);
pbbar = (ProgressBar) findViewById(R.id.pbbar);
pbbar.setVisibility(View.GONE);
shp = this.getSharedPreferences("UserInfo", MODE_PRIVATE);
String userid = shp.getString("UserId", "none");
if (userid.equals("none") || userid.trim().equals("")) {
} else {
Intent i = new Intent(SigninActivity.this, HeadMainActivity.class);
startActivity(i);
finish();
}
btnlogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DoLogin doLogin = new DoLogin();
doLogin.execute("");
}
});
}
public class DoLogin extends AsyncTask<String, String, String> {
String z = "";
Boolean isSuccess = false;
String userid = edtuserid.getText().toString();
String password = edtpass.getText().toString();
@Override
protected void onPreExecute() {
pbbar.setVisibility(View.VISIBLE);
}
//Android Shared Preferences
@Override
protected void onPostExecute(String r) {
pbbar.setVisibility(View.GONE);
Toast.makeText(SigninActivity.this, r, Toast.LENGTH_SHORT).show();
if (isSuccess) {
SharedPreferences.Editor edit = shp.edit();
edit.putString("UserId", userid);
edit.commit();
Intent i = new Intent(SigninActivity.this, HeadMainActivity.class);
startActivity(i);
finish();
}
}
//Android Shared Preferences
@Override
protected String doInBackground(String... params) {
if (userid.trim().equals("") || password.trim().equals(""))
z = "Please enter User Id and Password";
else {
try {
Connection con = connectionClass.CONN();
if (con == null) {
z = "Error in connection with SQL server";
} else {
String query = "select * from Usertbl where UserId='"
+ userid + "' and password='" + password + "'";
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
if (rs.next()) {
z = "Login successfull";
isSuccess = true;
} else {
z = "Invalid Credentials";
isSuccess = false;
}
}
} catch (Exception ex) {
isSuccess = false;
z = "Exceptions";
}
}
return z;
}
}
}
หน้าหลัก
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.ListView;
import android.widget.TextView;
public class HeadMainActivity extends Activity {
ConnectionClass connectionClass;
TextView staffid, staffname, logout;
ListView listView;
SharedPreferences shp;
SharedPreferences sharef;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_head_main);
staffid = (TextView) findViewById(R.id.staffid);
staffname = (TextView) findViewById(R.id.staffname);
logout = (TextView) findViewById(R.id.logout);
logout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent gotoLogin = new Intent(HeadMainActivity.this, SigninActivity.class);
startActivity(gotoLogin);
finish();
}
});
shp = this.getSharedPreferences("UserInfo", MODE_PRIVATE);
String userid = shp.getString("UserId", "none");
if (userid.equals("none") || userid.trim().equals("")) {
Intent i = new Intent(HeadMainActivity.this, SigninActivity.class);
startActivity(i);
finish();
} else {
SharedPreferences.Editor edit = shp.edit();
edit.commit();
staffid.setText(userid);
}
}
}
ผลลัพธ์ รันกี่ครั้งก็ขึ้นแบบนี้ มันไม่ขึ้นหน้าล็อกอิน มันให้ล็อกอินครั้งแรก แล้วก็ขึ้นแต่หน้าหลักตลอด
Tag : Mobile, Ms SQL Server 2005, Ms SQL Server 2008, Ms SQL Server 2012, Android
Date :
2016-09-19 18:41:36
By :
aummyasia
View :
1264
Reply :
2
Debug ดูครับถึงจะรู้
Date :
2016-09-20 14:44:48
By :
mr.win
Code (Android-Java)
public class SigninActivity extends Activity {
ConnectionClass connectionClass;
EditText edtuserid, edtpass;
Button btnlogin;
ProgressBar pbbar;
SharedPreferences shp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_signin);
connectionClass = new ConnectionClass();
edtuserid = (EditText) findViewById(R.id.edtuserid);
edtpass = (EditText) findViewById(R.id.edtpass);
btnlogin = (Button) findViewById(R.id.btnlogin);
pbbar = (ProgressBar) findViewById(R.id.pbbar);
pbbar.setVisibility(View.GONE);
shp = this.getSharedPreferences("UserInfo", MODE_PRIVATE);
String userid = shp.getString("UserId", "none");
if (userid.equals("none") || userid.trim().equals("")) {
} else {
Intent i = new Intent(SigninActivity.this, HeadMainActivity.class);
startActivity(i);
finish();
}
btnlogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DoLogin doLogin = new DoLogin();
doLogin.execute("");
}
});
}
อาจจะเป็นเพราะเงื่อนไข if , else ที่ oncreate เลยทำให้เข้าหน้าล๊อคอินแล้วไป HeadMainActivity.class ทันทีครับ
ประวัติการแก้ไข 2017-01-13 21:37:08 2017-01-13 21:39:13
Date :
2017-01-13 21:36:00
By :
pranote661
Load balance : Server 04