java如何在线程中创建TextView?
我想知道如何在线程内创建TextView:
Thread t = new thread() {
public void run() {
for(int i = 0; i < 63; i++) {
TextView tv = new TextView();
tv.setText("What to do");
}
}
}
t.start();
我不知道该做什么,是什么应该在TextView的构造方法中
# 1 楼答案
要回答您的问题:要创建
TextView
,必须为其提供Context
Activity
和Application
都扩展了Context
,最常用于需要Context
的地方。在您的情况下,您应该使用创建的TextView
将显示在中的活动。因此,要修改您的代码:这一点很重要,即使您没有问过:
TextView
是一个UI控件。只有在UI线程上创建UI控件才合法。在不同的线程中创建它可能会导致各种各样的麻烦。从不同线程执行此操作的一种方法是使用Activity.runOnUiThread()
方法:免责声明:尽管我修复了上面代码中的一些错误,但我没有测试它。仍然可能有错误
# 2 楼答案
试试这个
您必须通过Application Context来创建视图,您只能在UI线程上修改UI强>
# 3 楼答案
另外,如果线程不在activity类中,因此可以调用
runOnUiThread
活动的方法,则可以使用handler。在活动的主线程中创建处理程序对象,并将其作为参数传递给所需的可运行对象。然后,在可运行代码中,可以使用处理程序的post(Runnable r)
方法从线程更新用户界面,而不会出现任何问题