Android Studio:1个按钮中的2个不同活动

时间:2017-12-15 04:57:51

标签: java php mysql android-studio android-volley

我想让登录按钮使用数据库中的标志列分发到2个不同的活动中?

enter image description here

如果登录的租户将重定向到租户活动

当房东登录时,它会重定向到另一个活动?

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 个答案:

答案 0 :(得分:0)

log in按钮的onClickListener()方法中,您可以添加if()语句。

执行此操作的步骤

1。从用户名和密码字段中获取数据,并在查询中使用该数据从数据库中检索数据

2。将您检索到的数据存储在如下所示的字符串中,因为您只能获得一行:

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

3. 现在,您可以在获取String flag值之后将if()语句放在登录按钮的onClickListener中,如:

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

答案 1 :(得分:0)

无论如何,您将查询验证用户名&密码,同时您还可以获取标志信息并将其存储在本地(减少数据库调用)。

将这些数据存储在地图中,并使用密钥作为用户名(假设用户名将是唯一的)并标记为值。

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

现在路由不同的活动,按钮点击方法内部尝试

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;
}

希望这会有所帮助。