我是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