我查看了像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中用作参数但不在方法中?
感谢您的帮助。
答案 0 :(得分:1)
你可以直接修剪它:
String username = mUsername.getText().toString().trim();
这可以节省中间局部变量存储。