异常信息:
01-10 00:46:22.039: E/AndroidRuntime(1621): android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
点击事件中修改一个TextView的颜色:
public void changeColor (View v){
new Thread(new Runnable() {
@Override
public void run() {
main_tv.setTextColor(Color.RED);
}
}).start();
}
子线程是无法直接修改UI的我们可以子线程里通过handler.setMessage(),来通知UI线程(主线程) 修改UI
public void changeColor (View v){
final Thread thread =new Thread(new Runnable() {
@Override
public void run() {
Message msg =Message.obtain();
msg.what=1;
Handler.sendMessage(msg );
}
});
thread.start();
}
接收处理消息:
public class MainActivity extends Activity {
private String TAG ="MainActivity";
Handler Handler = new Handler(){
public void handleMessage(android.os.Message msg) {
if(msg.what==1){
main_tv.setTextColor(Color.RED);
}
};
};
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
分享到:
相关推荐
主要介绍了C#子线程更新UI控件的方法,在桌面应用程序中控制UI界面有着不错的实用价值,需要的朋友可以参考下
Android ,非MainActivity类中的子线程和UI线程通讯,并且获取子线程传递的信息,更新UI界面。需要使用okHttp类库
c#子线程如何读取及设置主线程ui的值,自己录的一个小视频,方便理解,比较菜鸟的方法,请勿喷!
子线程任务发生异常,主线程事务如何回滚
子线程操作主线程控件,不卡顿,简易高效,代码人人看的懂
dialog库,可以在任意类内调用,子线程或ui线程内均可显示
wpf 子线程更新UI demo 两种方法 代码案例
Handler子线程更新ui的简单demo
三种更新主线程的方法;handler的两种
多个线程竞争读写同一个资源往往会造成意想不到的意外结果,UI界面也是一种资源,所以跨线程修改UI界面往往被加以限制。这里采用Task + MethodInvoker的方式完成跨线程对UI对的修改。
java 子线程通过观察者模式通知主线程
子线程中更新UI的三种方法和获取message的两种方法总结
子线程更新主线程数据(再谈多线程)
今天小编就为大家分享一篇Python+PyQT5的子线程更新UI界面的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
print '子线程的运行' t1 = threading.Thread(target=newThread) t1.setDaemon(True) t1.start() 之后我发现用子线程去调用UI线程是行不通的,只能通过信号和槽来实现,于是 首先,定义一个类,让他实现PySide....
Visual C++源代码 22 如何从子线程更新主线程数据Visual C++源代码 22 如何从子线程更新主线程数据Visual C++源代码 22 如何从子线程更新主线程数据Visual C++源代码 22 如何从子线程更新主线程数据Visual C++源代码...
C#子线程刷新主线程示例源码 功能介绍: 使用线程操作 1、实时显示当前时间 2、输入加数和被加数,自动出现结果 技术特点: 使用了多线程实现了子线程刷新主线程 ,使用委托刷新主线程。 注意: 开发环境为...