使用jsonObject android登录成功时打开新活动

时间:2018-06-15 03:08:44

标签: java android json

我正在尝试在我的应用上实施登录活动,但是当登录成功时我无法启动新活动。

我的代码

EditText editEmail, editPassword, editName;
Button btnSignIn, btnRegister;

String URL= "http://example.com/ecommerce/user/index.php";

JSONParser jsonParser=new JSONParser();

int i=0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    editEmail=(EditText)findViewById(R.id.editEmail);
    editName=(EditText)findViewById(R.id.editName);
    editPassword=(EditText)findViewById(R.id.editPassword);

    btnSignIn=(Button)findViewById(R.id.btnSignIn);
    btnRegister=(Button)findViewById(R.id.btnRegister);

    btnSignIn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                AttemptLogin attemptLogin= new AttemptLogin();
                attemptLogin.execute(editName.getText().toString(),editPassword.getText().toString(),"");
            }
        });

    btnRegister.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                if(i==0)
                {
                    i=1;
                    editEmail.setVisibility(View.VISIBLE);
                    btnSignIn.setVisibility(View.GONE);
                    btnRegister.setText("CREATE ACCOUNT");
                }
                else{

                    btnRegister.setText("REGISTER");
                    editEmail.setVisibility(View.GONE);
                    btnSignIn.setVisibility(View.VISIBLE);
                    i=0;

                    AttemptLogin attemptLogin= new AttemptLogin();
                    attemptLogin.execute(editName.getText().toString(),editPassword.getText().toString(),editEmail.getText().toString());

                }

            }
        });


}

private class AttemptLogin extends AsyncTask<String, String, JSONObject> {

    @Override

    protected void onPreExecute() {

        super.onPreExecute();

    }

    @Override

    protected JSONObject doInBackground(String... args) {



        String email = args[2];
        String password = args[1];
        String name= args[0];

        ArrayList<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair("username", name));
        params.add(new BasicNameValuePair("password", password));
        if(email.length()>0)
            params.add(new BasicNameValuePair("email",email));

        JSONObject json = jsonParser.makeHttpRequest(URL, "POST", params);


        return json;

    }

    protected void onPostExecute(JSONObject result) {

        // dismiss the dialog once product deleted
        //Toast.makeText(getApplicationContext(),result,Toast.LENGTH_LONG).show();

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


    }

}

}

我正在尝试在我的应用上实施登录活动,但是当登录成功时我无法启动新活动。

我只是在toast显示成功登录时才开始新活动,否则会显示失败的消息,我该怎么办呢?

2 个答案:

答案 0 :(得分:1)

是的,这可以通过定义您是否收到此消息以便开始新活动来尝试此操作。

try {
            if (result.getString("message").equals("Successfully logged in"))  {
                Toast.makeText(getApplicationContext(),result.getString("message"),Toast.LENGTH_LONG).show();
                Intent intent = new Intent(getApplicationContext(), ActivitySecond.class);
                startActivity(intent);
            }
            else {
                Toast.makeText(getApplicationContext(), "Unable to retrieve any data from server", Toast.LENGTH_LONG).show();
            }

度过愉快的一天。

答案 1 :(得分:0)

有一个名为 Volley 的优秀图书馆来解析JSON结果,可以帮助您使用登录功能。我正在分享关于Volley的官方文档,它会给你一个简短的想法和用法,为了进一步使用,有一个教程的链接可以帮助你理解如何使用它。

Official Documentation

Tutorial Link