Android TextView 失效无效

Android TextView invalidate doesn't work

我在 Android 上遇到了一个小的无效问题。 在 Activity 创建视图后,我收到一个监听器回调(在下面的示例中为 "onSomething"”)以更新 TextView,但是我无法使其工作...你能帮忙吗?

Activity onCreate :

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.myLayout);

    init_views();
}

我初始化视图的方法:

private static TextView myTxtView;
private void init_views(){
     myTxtView = (TextView) findViewById(R.id.txtid);
}

侦听器和 TextView 更新:

@Override
public void onSomething(JSONObject data) {
    try {
        ... // my code

        myTxtView.setText(distance); // this doesn't work :( :(
        myTxtView.postInvalidate(); // this doesn't work  :( :(

    } catch (Throwable t){ return; }
}

setText 必须在 UI 线程上调用。

myTxtView.post(new Runnable() {
  public void run() {
      myTxtView.setText(distance);
  }
});

您必须在 activity 中更新文本视图 您必须使用 runOnUiThread

 runOnUiThread(new Runnable() {
          @Override 
          public void run() { 

                   myTxtView.setText(distance);

        });