Java 光标问题
我试图将光标传递给一个方法。但我得到了这个错误Java 光标问题,java,android,cursor,Java,Android,Cursor,我试图将光标传递给一个方法。但我得到了这个错误 Cannot refer to a non-final variable c inside an inner class defined in a different method 密码 public void loggedin(String title, String message, String positive, Cursor c) { AlertDialog.Builder alertbox = new AlertDialog.
Cannot refer to a non-final variable c inside an inner class defined in a different method
密码
public void loggedin(String title, String message, String positive, Cursor c) {
AlertDialog.Builder alertbox = new AlertDialog.Builder(
HomeActivity.this);
alertbox.setTitle(title);
alertbox.setMessage(message);
alertbox.setPositiveButton(positive,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
String username = c.getString(0);
MessagingApplication.setUsername("");
String currentUserName=MessagingApplication.getUsername();
Toast.makeText(HomeActivity.this, currentUserName, 5);
alertbox("Error", currentUserName,
"Back", null);
Intent i = new Intent(HomeActivity.this,
MailActivity.class);
//startActivity(i);
}
});
alertbox.show();
}
您的OnClickListener是一个匿名内部类。不能使用作用域在匿名内部类之外的非最终变量 这是因为匿名内部类获取所有局部变量的副本,因此在使用内部类时,它们将可用。如果变量未标记为final,则无法保证值相同 因此,您需要将光标声明为final:
public void loggedin(String title, String message, String positive, final Cursor c) {