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) {