Я полагаю, что ваше требование: у вас есть кнопка, когда вы нажимаете вниз, она выполняет операцию, требующую затрат времени, и вы хотите, чтобы кнопка показала «Загрузка», когда работа завершена, кнопка показывает «Потяните вниз доrefresh "Снова.
В соответствии с этой ситуацией, вы не можете просто изменить кнопку с помощью setText и Sleep (1000), это сделает ваш экран не отвечающим в течение секунды (потому что он работает в потоке основного пользовательского интерфейса),Таким образом, вы не видите изменения ... Пожалуйста, используйте Thread + Handler или AsyncTask
class BtnAsyncTask extends AsyncTask<String, Integer, String>{
@Override
protected void onPreExecute() {
super.onPreExecute();
first.setBackgroundColor(Color.WHITE);
pullDown.setHeight(200);
pullDown.setText("Loading");
}
@Override
protected String doInBackground(String... params) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
first.setBackgroundColor(Color.BLUE);
change.setText("OK");
pullDown.setText("Pull Down to Refresh");
pullDown.setHeight(70);
}
}
и создайте новую задачу, нажав кнопку, вызовите:
new BtnAsyncTask().execute();
—————————————— Или, если вы просто хотите изменить внешний вид при нажатии кнопки, используйте нарисованный шаблон
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/select_drawable" />
<item android:state_window_focused="true"
android:state_focused="true"
android:drawable="@drawable/normal_drawalbe" />
<item android:drawable="@drawable/normal_drawalbe" />
надеюсь, что это поможет вам:)