从内部类中访问局部变量

时间:2014-11-30 23:59:56

标签: java android string final

我查看了像Variable is accessed within inner class. Needs to be declared final这样的答案,但它没有解决我的问题

我有一个点击监听器,这里是代码

mUsername是一个EditText,已经与按钮

定义相同
mLoginButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            String username = mUsername.getText().toString();
            username = username.trim();
            ParseUser.logInInBackground(username, password, new LogInCallback() {
                    @Override
                    public void done(ParseUser parseUser, ParseException e) {
                            Intent intent = new Intent(LoginActivity.this, MainActivity.class);
                            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
                            intent.putExtra("username", username);// get compile error here 
                            startActivity(intent);
                   }
          }
});

错误说要将String username = mUsername.getText().toString();设置为最终版,但是我无法通过修剪重新定义用户名?我不知道为什么它可以在logInInBackround中用作参数但不在方法中?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

你可以直接修剪它:

String username = mUsername.getText().toString().trim();

这可以节省中间局部变量存储。

相关问题