这几天有点问题。我需要ProgressBar
在主线程中做一些事情时显示简单(而不是对话框)......我认为这是一个非常简单的问题,但我不能这样做,请帮助我。
首先我尝试了简单的setVisibility(View.VISIBLE)
前后setVisibility(View.GONE)
。
但这是在同一个线程中进行的,并且ProgressBar
在我的函数工作时冻结了。
现在我有这个代码,但我有一些错误,我不知道什么是错的..
我的简单布局:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ProgressBar
android:id="@+id/loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:visibility="gone" />
</FrameLayout>
我有一个基本活动:
public class BaseActivity extends Activity {
public ProgressBar loading;
public class ProgressBarShow extends AsyncTask<Void, Void, Void> {
protected Void doInBackground(Void... unused) {
return(null);
}
protected void onProgressUpdate() {
}
protected void onPreExecute() {
loading.setVisibility(View.VISIBLE);
}
protected void onPostExecute() {
}
}
}
最后是我的工作活动,它扩展了BaseActivity
public class SearchActivity extends BaseActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
loading = (ProgressBar) findViewById(R.id.loading);
new ProgressBarShow().execute();
//doing long stuff
//new ProgressBarHide().execute(); there isnt, but sense the same
}
}
我有很多活动,需要进度条,这就是我创建的原因BaseActivity
,而不是重复代码。
我需要在主线程中做长时间的工作(东西功能),因为我想冻结主窗口并且不允许用户做任何事情(点击按钮等),只显示工作进度条。
我的例子有什么问题?或者给我一些建议,我怎样才能做得更好