意图下一个活动,吐司,进度条不起作用

时间:2018-03-25 08:47:28

标签: java android user-interface android-intent

我正在尝试创建一个登录页面,如果用户输入正确的移动设备,并且它应该放在ProfileActivity.java中

我的代码

public class LoginActivity extends AppCompatActivity {

EditText editTextUsername, editTextPassword;
ProgressBar progressBar;

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

    if (SharedPrefManager.getInstance(this).isLoggedIn()) {
        finish();
        startActivity(new Intent(this, ProfileActivity.class));
    }

    progressBar = (ProgressBar) findViewById(R.id.progressBar);
    editTextUsername = (EditText) findViewById(R.id.editTextUsername);
    editTextPassword = (EditText) findViewById(R.id.editTextPassword);


    //if user presses on login
    //calling the method login
    Button login = (Button)findViewById(R.id.buttonLogin);
    login.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            userLogin();
        }
    });

    //if user presses on not registered
    findViewById(R.id.textViewRegister).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            //open register screen
            finish();
            startActivity(new Intent(getApplicationContext(), MainActivity.class));
        }
    });
}

private void userLogin() {
    //first getting the values
    final String mobile = editTextUsername.getText().toString();
    final String password = editTextPassword.getText().toString();

    //validating inputs
    if (TextUtils.isEmpty(mobile)) {
        editTextUsername.setError("Please enter your username");
        editTextUsername.requestFocus();
        return;
    }

    if (TextUtils.isEmpty(password)) {
        editTextPassword.setError("Please enter your password");
        editTextPassword.requestFocus();
        return;
    }

    //if everything is fine
    StringRequest stringRequest = new StringRequest(Request.Method.POST, URLs.URL_LOGIN,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    progressBar.setVisibility(View.GONE);

                    try {
                        //converting response to json object
                        JSONObject obj = new JSONObject(response);

                        //if no error in response
                        if (!obj.getBoolean("error")) {
                            Toast.makeText(getApplicationContext(), "error", Toast.LENGTH_SHORT).show();

                            //getting the user from the response
                            JSONObject userJson = obj.getJSONObject("user");

                            //creating a new user object
                            User user = new User(
                                    userJson.getInt("id"),
                                    userJson.getString("mobile"),
                                    userJson.getString("password")
                            );

                            //storing the user in shared preferences
                            SharedPrefManager.getInstance(getApplicationContext()).userLogin(user);

                            //starting the profile activity

                            Intent intent = new Intent(LoginActivity.this, ProfileActivity.class);
                            startActivity(intent);
                            finish();
                        } else {
                            Toast.makeText(getApplicationContext(), obj.getString("message"), Toast.LENGTH_SHORT).show();
                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                    Log.e("TAG", response);
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_SHORT).show();
                }
            }) {
        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            Map<String, String> params = new HashMap<>();
            params.put("mobile", mobile);
            params.put("password", password);
            return params;
        }
    };

    VolleySingleton.getInstance(this).addToRequestQueue(stringRequest);
}
}

在此代码中,toast,progressbar和重定向到下一个活动的意图都不起作用。我还使用Activity扩展了ProfileActivity。我在清单文件中注册了profileactivity.java。

我在这里做错了什么?谢谢你的建议

3 个答案:

答案 0 :(得分:0)

finish()方法应该结束,因为它会忽略所有下一行。

Intent intent = new Intent(LoginActivity.this, ProfileActivity.class);
startActivity(intent);
finish();

答案 1 :(得分:0)

您正在使用&#34; id&#34;字段为整数,它是一个字符串,其次是你从哪里获得

.page {
    border: 1px solid transparent;
}

答案 2 :(得分:0)

我解决了。在该行中,

JSONObject userJson = obj.getJSONObject("user");

我将对象命名为user。但在PHP中,我将其命名为结果一旦我更改它,它就开始工作了。

虽然,感谢您的支持社区:)。