我是Android新手。Runnable在方法中聲明時有效;在方法外聲明時崩潰
我想修改我的活動TextView的幾秒鐘後(它說:「嘿!」起初,我想可以說幾秒鐘後,「你好!」),所以我有:
protected void onResume() {
super.onResume();
final TextView t = (TextView)findViewById(R.id.hello);
Runnable changeTextTask = new Runnable() {
public void run() {
t.setText("hello!");
}
};
Handler h = new Handler();
h.postDelayed(changeTextTask, 3000);
}
哪個有效。但是,當我在課程開始時聲明Runnable時,如下所示:
public class MainActivity extends ActionBarActivity {
final TextView t = (TextView)findViewById(R.id.hello);
Runnable changeTextTask = new Runnable() {
public void run() {
t.setText("hello!");
}
};
.
.
.
protected void onResume() {
super.onResume();
Handler h = new Handler();
h.postDelayed(changeTextTask, 3000);
}
該應用程序在啓動時崩潰。任何人都可以解釋爲什麼會發生這種情況/我做錯了什麼?
它不是'Runnable',它是'TextView'。 – 2014-12-04 01:18:10
將TextView聲明放入run()方法內確實可以解決問題!你能解釋爲什麼另一種方式會破壞嗎? – 2014-12-04 01:20:16