Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在使用PHP按摩成功登录后打开Mainactivity?_Php_Android_Login - Fatal编程技术网

如何在使用PHP按摩成功登录后打开Mainactivity?

如何在使用PHP按摩成功登录后打开Mainactivity?,php,android,login,Php,Android,Login,登录成功后,我正在尝试打开Mainactivity protected void onPostExecute(JSONObject result) { try { if (result != null) { Toast.makeText(getApplicationContext(),result.getString("message"),Toast.LENGTH_LONG).show(); } else {

登录成功后,我正在尝试打开Mainactivity

protected void onPostExecute(JSONObject result) {
    try {
        if (result != null) {
            Toast.makeText(getApplicationContext(),result.getString("message"),Toast.LENGTH_LONG).show();
        } else {
            Toast.makeText(getApplicationContext(), "Unable to retrieve any data from server", Toast.LENGTH_LONG).show();
        }
    } catch (JSONException e) {
        e.printStackTrace();
}
来自PHP的消息:“成功登录”和“不正确的详细信息”

如果我改变:

protected void onPostExecute(JSONObject result) {
    try {
        if (result != null) {
            Toast.makeText(getApplicationContext(), result.getString("message"), Toast.LENGTH_LONG).show();
            Intent i = new Intent(getApplicationContext(), MainActivity.class);
            getApplicationContext().startActivity(i);
        } else {
            Toast.makeText(getApplicationContext(), "Unable to retrieve any data from server", Toast.LENGTH_LONG).show();
        }
    } catch (JSONException e) {
        e.printStackTrace();
    }
}
成功或失败登录时,将进入MainActivity
有人帮我吗?

根据您的代码,当结果对象不为空时,您将输入MainActivity。您应该为输入MainActivity添加更多条件,例如:

if (result != null && result.getString("result").equals("success"))

您只是在检查
结果
是否为空。您应该通过修改代码来检查登录的确切状态,如下面所示

if (result != null && result.optString("message", "failed").equals("Successfully logged in"))
即使“message”的值为空,使用
optString
也会有好处


注意:您可以根据JSON结构修改代码。

将if条件替换为以下条件

  if (result != null && result.getString("message").contains("Successfully logged in"))

对不起,伙计,我错把你的答案改了。正在还原。请在github上查看此内容。它还使用两个应用程序中的登录和注册。
protected void onPostExecute(JSONObject result) {
        try {
            if (result.length() != 0) {
                Toast.makeText(getApplicationContext(), result.getString("message"), Toast.LENGTH_LONG).show();
                        Intent i = new Intent(getApplicationContext(), MainActivity.class);
                      startActivity(i);

            } else {
                Toast.makeText(getApplicationContext(), "Unable to retrieve any data from server", Toast.LENGTH_LONG).show();
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }