在我的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();
}
});
}
在上面的代码中,我将行声明为“final”,它将错误显示为
可能已经指定了最终的局部变量线
在
行while ((line = rd.readLine()) != null)
所以,我删除了最终修饰符。现在它显示错误为
不能引用在不同方法中定义的内部类中的非最终变量行
在
行Toast.makeText(getBaseContext(), ""+line.toString(), Toast.LENGTH_LONG).show();
我在while循环中声明了一个局部String变量,并为其分配了行值。代码是
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();
}
});
}
它也显示错误。我无法理解这一点。有人可以说我的代码中如何避免此错误。
提前致谢。
答案 0 :(得分: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 ();
}
}
);
}