更新不同类中的值时更新textview

时间:2013-01-21 23:17:53

标签: java android eclipse textview

我正在尝试将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));
}

但有了这个它不会更新实际的计时器,我不确定为什么它崩溃当我使用前两个代码块时,它编译得很好。

2 个答案:

答案 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);