我得到了这个代码:
public void make_square(View v) {
TextView txt_wait = (TextView) findViewById(R.id.square_txt);
txt_wait.setText("wait...");
try{
//rest of the code (scanning a bitmap for pixels)
" make_square
" 是一个 onClick 事件(在 XML 文件中)。当我单击要更改文本时(txt_wait
)
然后在更改之后,他必须执行其余的代码。但不知何故,它会等待其余的代码,然后当该代码完成时,他会更改txt_wait
我也尝试过这样的事情(也没有工作):
public void make_square(View v) {
TextView txt_wait = (TextView) findViewById(R.id.square_txt);
txt_wait.setText("wait...");
make_square2(v);
}
public void make_square2(View v){
try{
//rest of the code (scanning a bitmap for pixels)
}
}
但是现在,它首先make_square2
在更改文本之前执行。为什么或如何解决这个问题?它txt_wait
首先改变,然后改变它,然后是其余的代码?
已经谢谢了, Bigflow
编辑1:
试过这个:
public void make_square(final View v) {
TextView txt_wait = (TextView) findViewById(R.id.square_txt);
txt_wait.setText("wait...");
new Thread() {
public void run() {
make_square2(v);
}
}.start();
}
public void make_square2(View v){
try{
//rest of the code
}
}
它给了我这个错误:
E/AndroidRuntime(17487): android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
我也试过这个:
public void make_square(View v) {
TextView txt_wait = (TextView) findViewById(R.id.square_txt);
txt_wait.setText("wait...");
make_square2(v);
}
public void make_square2(View v)
new Thread() {
public void run() {
//rest of the code
}
}.start();
这也给出了完全相同的错误。
我不熟悉线程使用,也许我做了一些非常糟糕的事情。希望你能再次帮助我。