2017-12-15 14 views
1

データベースのフラグ列を使用して2つの異なるアクティビティにディスパッチするログインボタンを作成しますか?Androidスタジオ:1つのボタンで2種類のアクティビティ

enter image description here

それにログインテナントはテナントの活動

にリダイレクトし、家主はそれでログインしているときに、他の活動にリダイレクトされますか?あなたのlog inボタンのonClickListener()メソッド内

public void onResponse(String response) { 
      Log.e(TAG, "Register Response: " + response.toString()); 
      hideDialog(); 

      try { 
       JSONObject jObj = new JSONObject(response); 
       success = jObj.getInt(TAG_SUCCESS); 

       // Check for error node in json 
       if (success == 1) { 


        String username = jObj.getString(TAG_USERNAME); 
        String id = jObj.getString(TAG_ID); 

        Log.e("Successfully Login!", jObj.toString()); 

        Toast.makeText(getApplicationContext(), jObj.getString(TAG_MESSAGE), Toast.LENGTH_LONG).show(); 


        SharedPreferences.Editor editor = sharedpreferences.edit(); 
        editor.putBoolean(session_status, true); 
        editor.putString(TAG_ID, id); 
        editor.putString(TAG_USERNAME, username); 
        editor.commit(); 

        // go to main activity 
        Intent intent = new Intent(LoginActivity.this, MainActivity.class); 
        intent.putExtra(TAG_ID, id); 
        intent.putExtra(TAG_USERNAME, username); 
        finish(); 
        startActivity(intent); 
       } else { 
        Toast.makeText(getApplicationContext(), 
          jObj.getString(TAG_MESSAGE), Toast.LENGTH_LONG).show(); 

       } 
      } catch (JSONException e) { 
       // JSON error 
       e.printStackTrace(); 
      } 

     } 

enter image description here

+2

if文を追加して、その中にインテントを使用して、条件 –

+2

java? PHP?私はそれに置く必要がありますどのような状態@DheerajJoshiと迷惑メールタグ – nogad

+0

をしないでください?? –

答えて

0

、あなたはif()文を置くことができます。

手順は、この

1.は、ユーザー名とパスワードフィールドからデータを取得していますし、データベース

2.ストアからデータを取得するために、クエリでそれを使用するには1行しか取得できないため、以下のようなStringで取得したデータ:

String flag = cursor.getString(7); //skipping the cursor and other database part

3.今、あなたは同じようString flag値を取得した後、ログインボタンのonClickListenerであれば()文を置くことができます。とにかくあなたは同時に、ユーザ名&パスワードを確認するために照会されます

if(flag.equals(landlord)){ 
Intent intent = new Intent(this,Landlord.class); 
startActivity(intent); 
} 
else{ 
Intent intent = new Intent(this,Tenant.class); 
startActivity(intent); 
} 
0

フラグ情報をフェッチしてローカルに格納することもできます(データベース呼び出しを減らす)。

これらのデータをユーザー名(想定ユーザー名は一意になります)のキーを持つマップに格納し、値としてフラグを立てます。

Map<String,String> mapToRouting = new Map<String,String>(); 

は今様々なアクティビティをルーティングするために、ボタンのクリックメソッド内でユーザーがlandlorあるかどうかを見つけるため

public static void buttonClickMethod(){ 
    //textFieldUserName is the username of user trying to login 
    if(isLanlord(textFieldUserName)){ 
    //this means user is Landlord & put code to redirect to corresponding screen 
    } 
    else{ 
    //put code to which redirects to tenants screen! 
    } 

} 

方法のようにしてみてください。

public static void isLandlord(String userName){ 
    boolean result = false; 
     if(mapToRouting.get(userName).equalsIgnorecase("Landlord")) 
      result = true; 
    return result; 
} 

これは役に立ちます。

関連する問題