以下は私のログインアクティビティです。 シンプルなレイアウトで、ユーザー名とパスワードを入力して[ログイン]ボタンをクリックします。 ユーザ名とパスワードのリストがms sql serverに保存されています。 また、接続も確立されています。 しかし、問題はユーザー名とパスワードの異なる組み合わせにあります。私はさまざまなアクティビティを開きたいと思います。 どうすればいいですか?入力されたログイン資格情報に応じて異なる活動を開きます
私は2つの私のデータベース・1.username1にユーザー名とパスワードの組み合わせ、パスワード1(ログインボタンをクリックして上のアクティビティ1を開く必要があります) 2.username2、パスワード2(ログインボタンをクリックして上のアクティビティ2を開くshoud)
を考えてみましょうここでコードが
public class Login extends Activity
{
private static final String DUMMY_CREDENTIALS = "[email protected]:hello";
// private UserLoginTask userLoginTask = null;
private View loginFormView;
private View progressView;
ConnectionClass connectionClass;
private AutoCompleteTextView emailTextView;
private EditText passwordTextView;
private Button btnlogin;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
connectionClass = new ConnectionClass();
emailTextView = (AutoCompleteTextView) findViewById(R.id.email);
//loadAutoComplete();
passwordTextView = (EditText) findViewById(R.id.password);
btnlogin=(Button) findViewById(R.id.email_sign_in_button);
class DoLogin extends AsyncTask<String,String,String>
{
String z = "";
Boolean isSuccess = false;
String userid = emailTextView.getText().toString();
String password = passwordTextView.getText().toString();
@Override
protected void onPreExecute() {
}
@Override
protected void onPostExecute(String r) {
Toast.makeText(Login.this, r, Toast.LENGTH_SHORT).show();
if(isSuccess) {
Intent i = new Intent(Login.this, Activity1.class);//For any combination ,it will open activity1 now.
startActivity(i);
finish();
}
}
@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 EmailID,Password from Login_DB where EmailID='" + 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;
}
}
btnlogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DoLogin doLogin = new DoLogin();// this is the Asynctask
doLogin.execute("");
}
});
}
}
データベースには、入力されたユーザー名とパスワードに基づいて、どのアクティビティに進むのかを知らせる属性が必要です。バックエンドから何らかのサポートを受けることなく、少なくとも効率的にこれをクライアント側で管理する実際の方法はありません。少なくとも私が考えることはできません。 – zgc7009
それはやや細かいようです。私は私のデータベーステーブル "GoTo ThisActivity"に列を作って、それに別の行でactivity1とactivity2の値を与えたとします。しかし、コードで私を助けることができますか?私のコードでこれを行う必要があります。 –