gpt4 book ai didi

android - 加载 ListView 时无法显示 Indeterminate ProgressBar

转载 作者:行者123 更新时间:2023-11-29 22:25:41 27 4
gpt4 key购买 nike

我正在加载一个 ListView ,其中列出了手机上所有已安装的应用程序。我希望应用程序在加载 ListView 时显示不确定的进度条(旋转的圆形进度条)。

     final PackageManager pm = this.getPackageManager();

Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);

final ArrayList<ResolveInfo> list =
(ArrayList<ResolveInfo>) pm.queryIntentActivities(intent,
PackageManager.PERMISSION_GRANTED);
for (ResolveInfo rInfo : list)
{
Log.i(TAG, ": Installed Applications " + rInfo.activityInfo.
applicationInfo.loadLabel(pm).toString());
}

final ArrayAdapter<ResolveInfo> adapter =
new ArrayAdapter<ResolveInfo>(this, R.layout.list_item, list)
{
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
if (convertView == null)
convertView = LayoutInflater.from(parent.getContext()).
inflate(R.layout.list_item, parent, false);

final String text = list.get(position).activityInfo.
applicationInfo.loadLabel(pm).toString();
((TextView)convertView.findViewById(R.id.text)).setText(text);

final Drawable drawable = list.get(position).activityInfo.applicationInfo.loadIcon(pm);
((ImageView)convertView.findViewById(R.id.image)).setImageDrawable(drawable);

return convertView;
}

};
setListAdapter(adapter);

ListView lv = getListView();
lv.setEmptyView(findViewById(R.id.empty));
lv.setTextFilterEnabled(true);

这是 XML:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="fill_parent"
android:layout_height="fill_parent">

<ImageView android:id="@+id/image"
android:layout_width="50dp" android:layout_height="50dp" />
<TextView android:id="@+id/text"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:padding="10dp" android:textSize="16sp" />

<ScrollView
android:id="@+id/empty" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ProgressBar android:id="@+id/progressBar1" android:layout_width="wrap_content"
android:layout_height="wrap_content"></ProgressBar>

</ScrollView>

</LinearLayout>

加载 ListView 时没有任何显示....我做错了什么???

最佳答案

我认为您需要异步加载数据:

  1. 在进行初始设置时,只为 Activity 设置主 ListView 并设置空 View
  2. 编写一个 AsyncTask(链接 here )异步加载您的数据并在完成时填充您的适配器
  3. 在初始设置后启动您的 AsyncTask
  4. 在任务执行期间,您的空 View (进度条)应该显示,当任务完成时,ListView 应该被填充

关于android - 加载 ListView 时无法显示 Indeterminate ProgressBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6023384/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com