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);
});
我在 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);
});