我activity_main.xml中包含此進度,啓動隱藏的(「水漲船高」)更改進度可視性裏面的onClick
<ProgressBar
android:id="@+id/progressBar_sendingPhoneNumber"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/button_sendPhoneNumber"
android:layout_centerInParent="true"
android:visibility="gone" />
而且我MainActivity.java有這個,
一個onclick處理程序的按鈕,我有
final Context context = this;
sendPhoneNumberButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
ProgressBar progressBar = (ProgressBar) findViewById(R.id.progressBar_sendingPhoneNumber);
progressBar.setVisibility(View.VISIBLE);
// Simulate HTTP connection
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
progressBar.setVisibility(View.GONE);
// Redirect to new activity
Intent intent = new Intent(context, InboxActivity.class);
startActivity(intent);
}
});
的問題是,從未示出的進度條,雖然執行的onClick代碼(例如,它在端重定向到新的活動)。所以行:
progressBar.setVisibility(View.VISIBLE);
沒有生效。
我認爲這與上下文有關,並嘗試從「外部」活動更改progressBar的可見性,但我不確定。
我該如何解決這個問題?
它與你正在使用的'Context'沒有任何關係。你阻止UI「線程」三秒鐘。 – adneal