2013-06-30 5 views
0

Следующий код ошибки: «Нельзя ссылаться на переменную nonid final внутри внутреннего класса, определенного другим способом», почему? Благодаря!Зачем это вызывает ошибку «Нельзя ссылаться на не конечную переменную»?

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();   
} 

ответ

2

т.к. myid не объявляется окончательным. Изменение

DeleteSingleSMS(long myid) 

в

DeleteSingleSMS(final long myid) 
+0

Blackbelt вы могли бы взглянуть на этот вопрос, если у вас есть время http://stackoverflow.com/questions/17388373/get-text-from-textview-w- кнопка-в-настраиваемого-ListView/17388422? noredirect = 1 # comment25243990_17388422. Правильно ли это, потому что я не уверен в этом, вторая часть моего ответа – Raghunandan