Android 更改文本查看值更改时的文本

Android 更改文本查看值更改时的文本,android,multithreading,textview,Android,Multithreading,Textview,单击按钮后,我尝试执行以下操作: case R.id.bcheckConnection: if (IPok()) { PlcState.ErrPlc = false; Constant.adressIpPlc = adresIp.getText().toString(); final ProgressDialog dialog = ProgressDialog.show(Main.this, "",

单击按钮后,我尝试执行以下操作:

case R.id.bcheckConnection:
        if (IPok()) {
            PlcState.ErrPlc = false;
            Constant.adressIpPlc = adresIp.getText().toString();

            final ProgressDialog dialog =     ProgressDialog.show(Main.this, "", "Trying to connect...");
            new Thread(new Runnable() {
                public void run() {
                    timeout = network.testConnection(Constant.adressIpPlc, 102, 20000);
                    dialog.dismiss();
                }
            }).start();

            if (timeout > -1) {
                PlcState.ErrPlc = false;

                stanPolaczenia.setText("Connection established. Timeout = ");
                stanTimeout.setText(Long.toString(timeout));
                currentIp.setText(Constant.adressIpPlc);

            } else {
                PlcState.ErrPlc = true;
                stanPolaczenia.setText("Error");
                stanTimeout.setText("");
                currentIp.setText(Constant.adressIpPlc);
            }
        } else {
            Toast.makeText(Main.this, "Wrong IP", Toast.LENGTH_LONG).show();
        }
        break;
那么,在线程停止运行后是否可以更改文本?

您可以使用来阻止当前线程,直到给定线程完成:

Thread myThread = new Thread(new Runnable() {
    public void run() {
       // Do something
    }
});
myThread.start();

// Do some things

// and block current thread until myThread is finished
myThread.join();

// Continue execution after myThread got finished

编辑:正如@Eric在问题评论中已经提到的那样:对于你(例如)的情况,使用它似乎更有意义。它有两个事件(在UI线程上调用),因此您可以使用进度更新和任务完成时更新UI。有关
AsyncTask
示例,请参阅:

为什么不使用
AsyncTask
?它有
onPostExecute()
,它在UI线程上运行。谢谢,我将使用
AsyncTask
。这更有意义。那么,是否有可能更改onCreate方法中引用的(findViewById)值od TxtView?是的,将其作为类中的成员变量保留。这是否违背了在另一个线程上执行某些操作的全部目的?在等待
myTHread
之前,您可以执行所有类型的操作。完成后调用
join()
,并且确实需要完成
myThread
。在我的示例中,它确实默认了线程的用途完全是肯定的。我已经更新了我的答案,使这(更)清楚。