Android invalidate() 不更新 textView
Android invalidate() not updating textView
我正在尝试在定时循环的同时进行 textView 更新。每次循环时,我都尝试使它无效()。这似乎可行,但应用程序在计时器启动时崩溃。
这是循环:
private Timer timer;
private TimerTask timerTask = new TimerTask() {
@Override
public void run() {
thangO += 10;
textypoo.setText(Integer.toString(thangO));
textypoo.invalidate();
}
};
public void start() {
if (timer != null) {
return;
}
timer = new Timer();
timer.scheduleAtFixedRate(timerTask, 0, 2000);
}
这是我初始化一些东西的 onCreate:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
Intent intent = getIntent();
textypoo = (TextView)findViewById(R.id.textmcview);
}
这里有2个onClick方法。一个在我按下时更新 textView,另一个调用计时器:
public void sendthestuff(View view) {
setContentView(R.layout.activity_second);
textypoo = (TextView) findViewById(R.id.textmcview);
thangO++;
message = Integer.toString(thangO);
textypoo.setText(message);
}
public void bazinga(View view) {
start();
}
替换:
private TimerTask timerTask = new TimerTask() {
@Override
public void run() {
thangO += 10;
textypoo.setText(Integer.toString(thangO));
textypoo.invalidate();
}
};
收件人:
private TimerTask timerTask = new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
thangO += 10;
textypoo.setText(Integer.toString(thangO));
textypoo.invalidate();
}
});
}
};
我正在尝试在定时循环的同时进行 textView 更新。每次循环时,我都尝试使它无效()。这似乎可行,但应用程序在计时器启动时崩溃。
这是循环:
private Timer timer;
private TimerTask timerTask = new TimerTask() {
@Override
public void run() {
thangO += 10;
textypoo.setText(Integer.toString(thangO));
textypoo.invalidate();
}
};
public void start() {
if (timer != null) {
return;
}
timer = new Timer();
timer.scheduleAtFixedRate(timerTask, 0, 2000);
}
这是我初始化一些东西的 onCreate:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
Intent intent = getIntent();
textypoo = (TextView)findViewById(R.id.textmcview);
}
这里有2个onClick方法。一个在我按下时更新 textView,另一个调用计时器:
public void sendthestuff(View view) {
setContentView(R.layout.activity_second);
textypoo = (TextView) findViewById(R.id.textmcview);
thangO++;
message = Integer.toString(thangO);
textypoo.setText(message);
}
public void bazinga(View view) {
start();
}
替换:
private TimerTask timerTask = new TimerTask() {
@Override
public void run() {
thangO += 10;
textypoo.setText(Integer.toString(thangO));
textypoo.invalidate();
}
};
收件人:
private TimerTask timerTask = new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
thangO += 10;
textypoo.setText(Integer.toString(thangO));
textypoo.invalidate();
}
});
}
};