public class MainActivity extends AppCompatActivity { private Button mButton; private TextView mTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mButton = (Button) findViewById(R.id.btn_button); mTextView = (TextView) findViewById(R.id.tv_show); mButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { new Thread(new Runnable() { @Override public void run() { mTextView.setText("1321456"); } }).start(); } }); }
}
这个代码表示不能在线程里边更新UI,
下面的代码展示更新UI 声明一个静态常量 ,新增了一个handle对象 重写handleMessage()
public static final int UPDATE_TEXT = 1; private Button mButton; private TextView mTextView; private Handler handle = new Handler(){ public void handleMessage(Message msg){ switch (msg.what){ case UPDATE_TEXT: //在这里进行UI更新 mTextView.setText("123456"); break; default: break; } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mButton = (Button) findViewById(R.id.btn_button); mTextView = (TextView) findViewById(R.id.tv_show); mButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { new Thread(new Runnable() { @Override public void run() { Message message = new Message(); message.what = UPDATE_TEXT; handle.sendMessage(message); } }).start(); } }); }