我正在尝试将textview更新为当前xml im查看中的值(计时器),计时器的java是glrenderer类的一部分,一切正常,但我无法更新我的textview,I已经将Activity扩展到了这个类:
class MyGLRenderer extends Activity implements GLSurfaceView.Renderer {
这样我就可以在定时器循环中使用它了:
TextView view = (TextView) findViewById(R.id.timetextview);
view.setText(String.valueOf(globals.gametime));
尝试创建视图对象时崩溃。
有一种方法我可以部分地获得它,Timer值是全局的,所以我可以通过在main.java中创建一个按钮来显示它,如下所示:
public void buttonExample (View v)
{
TextView view = (TextView) findViewById(R.id.timetextview);
view.setText(String.valueOf(globals.gametime));
}
但有了这个它不会更新实际的计时器,我不确定为什么它崩溃当我使用前两个代码块时,它编译得很好。
答案 0 :(得分:0)
我怀疑,您正在更新计时器线程中的Textview。
您可以在计时器线程中尝试此操作 -
runOnUiThread(new Runnable() {
public void run() {
view.setText(String.valueOf(globals.gametime));
}
});
答案 1 :(得分:0)
使用Gaurav提供的代码在我的时间访问ui线程工作得很好,这是我用的
public Timer timer = new Timer();
timer.schedule(new TimerTask()
{
@Override
public void run()
{
runOnUiThread(new Runnable() {
public void run() {
TextView view = (TextView) findViewById(R.id.timetextview);
view.setText(String.valueOf(globals.GameTime));
}
});
}
}, 250, 250);