2016-04-07 4 views
0

以下は私のログインアクティビティです。 シンプルなレイアウトで、ユーザー名とパスワードを入力して[ログイン]ボタンをクリックします。 ユーザ名とパスワードのリストが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(""); 
      } 
     }); 
    } 
} 
+0

データベースには、入力されたユーザー名とパスワードに基づいて、どのアクティビティに進むのかを知らせる属性が必要です。バックエンドから何らかのサポートを受けることなく、少なくとも効率的にこれをクライアント側で管理する実際の方法はありません。少なくとも私が考えることはできません。 – zgc7009

+0

それはやや細かいようです。私は私のデータベーステーブル "GoTo ThisActivity"に列を作って、それに別の行でactivity1とactivity2の値を与えたとします。しかし、コードで私を助けることができますか?私のコードでこれを行う必要があります。 –

答えて

0

活動にユーザ名をリンクするデータベース内のテーブルを作成し、ユーザーを認証した後、それを照会-----あります。

+0

これは幾分fine.Letsは私のdatabseテーブル "GoTo ThisActivity"の列を作って、それは別の行にactivity1とactivity2の値を与えると言うでしょう。しかし、コードで私を助けることができますか?私のコードでこれを行う必要があります。 –

+0

私はあなたのために書く時間よりも多くのコードを書いていますが、あなたの努力を試して投稿すると、デバッグするのに役立ちます。 –

+0

さて、最初に試してみましょう –

関連する問題