0

次のコードでは、「別のメソッドで定義された内部クラス内の非最終変数 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();        
}
4

1 に答える 1

2

myidfinal として宣言されていないためです。変化する

DeleteSingleSMS(long myid)

DeleteSingleSMS(final long myid)
于 2013-06-30T09:00:15.323 に答える