[英]Android progress bar in ListView loading
我想在我的应用程序ListView
添加LinearLayout
内的内容, LinearLayout
在加载LinearLayout
不是列表中具有进度条。 这类似于系统应用程序,您可以在其中管理您的应用程序。
我找到了一些关于它的信息,但没有一个是好的。 一个似乎最好的说法是创建两个布局(一个带有进度条,另一个带有ListView),然后在onPreExecute()
(我为此使用AsyncTask
)显示进度条。 然后在onPostExecute()
其隐藏,仅此而已。
我试图实现它,但我有ScrapView错误,没有更多的信息,它是如何做到的。
因此,我的问题是,您将如何推荐我这样做? 我不想要任何进度对话框。
编辑:
这是我的代码片段,显示了到目前为止我已经做的事情:
TestActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mylist_layout);
wordList = (ListView) findViewById(R.id.wordsList);
//...
}
private class AsyncDBDownload extends AsyncTask<String, Integer, String> {
LinearLayout linlaHeaderProgress = (LinearLayout) findViewById(R.id.linlaHeaderProgress);
@Override
protected String doInBackground(String... params) {
try {
refreshList();//upload of contetn and set of adapter
} catch (Exception ex) {
Log.e(TAG, ex.toString());
}
return null;
}
@Override
protected void onPostExecute(String result) {
linlaHeaderProgress.setVisibility(View.GONE);
wordList.setVisibility(View.VISIBLE);
}
@Override
protected void onPreExecute() {
linlaHeaderProgress.setVisibility(View.VISIBLE);
}
}
private void refreshList() {
//List content download into Cursor - adapterCursor
//...
wordList.setAdapter(adapterCursor);
}
word_list.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/linlaHeaderProgress"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:orientation="vertical"
android:visibility="gone" >
<ProgressBar
android:id="@+id/pbHeaderProgress"
style="@android:style/Widget.ProgressBar.Small"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</ProgressBar>
</LinearLayout>
<ListView
android:id="@+id/wordsList"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fastScrollEnabled="true" >
</ListView>
另外两件事:
onResume()
,需要执行AsyncTask; mylist_layout.xml
中应该列出的地方是include包含在这个布局中的word_list.xml
布局 其他事情:
我正在做Android 2.2 / 2.3兼容的应用程序,我忘了提,所以如果有些东西不在android.support.v4.app.Fragment
里面,我将不会使用它。
您可以使用ListFragment
。 使用带有true
/ false
setListShown()
来隐藏/显示加载程序而不是列表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.