Android 为什么会导致错误;不能引用非最终变量";?

Android 为什么会导致错误;不能引用非最终变量";?,android,Android,下面的代码出现错误“无法在不同方法中定义的内部类中引用非最终变量myid”,为什么?谢谢 private void DeleteSingleSMS(long myid){ AlertDialog.Builder builder = new Builder(this); builder.setMessage(getString(R.string.DeleteContent)); builder.setTitle(getString(R.string.DeleteTitle)

下面的代码出现错误“无法在不同方法中定义的内部类中引用非最终变量myid”,为什么?谢谢

private void DeleteSingleSMS(long myid){
    AlertDialog.Builder builder = new Builder(this);
    builder.setMessage(getString(R.string.DeleteContent));
    builder.setTitle(getString(R.string.DeleteTitle));

    builder.setPositiveButton(getString(R.string.DeleteOK), new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
            String uri = "content://sms/" +myid;            
            getContentResolver().delete(Uri.parse(uri), null, null);    
        }
    });

    builder.setNegativeButton(getString(R.string.DeleteCancel),
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                }
            });

    builder.create().show();        
}

因为
myid
未声明为final。改变

DeleteSingleSMS(long myid)


如果你有时间的话,你能看看这个问题吗。这是正确的方法吗?因为我不确定我答案的第二部分
DeleteSingleSMS(final long myid)