2013-03-01 2 views
-2

В моем приложении для Android есть несколько фрагментов кода.Ошибка получения окончательного модификатора

final String line; 
while ((line = rd.readLine()) != null) { 
// Print the response output... 
offer.this.runOnUiThread(new Runnable() { 
public void run() { 
    Toast.makeText(getBaseContext(), ""+line.toString(), Toast.LENGTH_LONG).show(); 
    //Toast.makeText(getBaseContext(),"data inserted",Toast.LENGTH_SHORT).show(); 
    } 
    }); 
} 

В приведенном выше коде я объявил строку, как «окончательный», он показывает ошибку в

Конечное локальная переменная линия, возможно, уже были назначены

на линии

while ((line = rd.readLine()) != null) 

Итак, я удалил последний модификатор. Теперь он показывает ошибку в

не может относиться к неконечной переменной линии внутри внутреннего класса, определенный в другом методе

на линии

Toast.makeText(getBaseContext(), ""+line.toString(), Toast.LENGTH_LONG).show(); 

Я объявлен локальная переменная String внутри цикла while и присвоенное ей значение строки. Код

while ((line = rd.readLine()) != null) { 
    final String e=line.toString(); 
    offer.this.runOnUiThread(new Runnable() { 
    public void run() { 
     Toast.makeText(getBaseContext(), ""+e.toString(), Toast.LENGTH_LONG).show(); 
     } 
    }); 
} 

Он также показывает ошибку. Я не мог этого понять. Может кто-то сказать, как избежать этой ошибки в моем коде.

Заранее спасибо.

ответ

4
String line; 
while ((line = rd.readLine()) != null) { 
    final String l = line; 
    offer.this.runOnUiThread (
     new Runnable() { 
      public void run() { 
       Toast.makeText (getBaseContext(), l, Toast.LENGTH_LONG).show(); 
      } 
     } 
    ); 
} 
+0

Я пробовал Project-> Clean, теперь решил. В любом случае, благодарю Вас –

Смежные вопросы