我目前正在开发我的第一款适用于Uni的Android应用。我正慢慢地到达那里,但我被困在某个部分。
课程作业需要一个与UIthread不同的线程。我的想法是用户可以在Name_edit.java中设置他们的名字然后当他们去board.java(一个不同的活动)时,两个textview现在显示输入的内容
在Name_edit.xml中,我有两个edittexts。
在board.java中我有两个textview(目前分别设置为P1和P2)。在OnCreate()中,我正在处理一个处理程序,以从(name_edit)两个edittexts中获取两个值,并将其设置为textviews。我相信这将需要两个处理程序(每个值一个)。在board.java中,我完成了标准的findViewById。
有关处理程序和线程的任何帮助都会有所帮助。
我会发布我的处理程序代码,但它是当前不断变化的。我正在做的是
handler = new Handler() {
public void handleMessage (Message msg) {
TextViewP1.setText(msg)
}
};
注意msg当前未设置为name_edit
的edittext答案 0 :(得分:1)
你试过runOnUiThread()
吗? UI元素只能从UI线程更改,并且此处理程序在其自己的线程上运行。
handler = new Handler() {
public void handleMessage (Message msg) {
((Activity)context).runOnUiThread(new Runnable() {
public void run() {
TextViewP1.setText(msg);
}
});
}
}
如果您的处理程序位于您的Activity类中,则context
可以替换为[class name].this
。
文档:http://developer.android.com/reference/android/app/Activity.html#runOnUiThread(java.lang.Runnable)