首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >安卓系统进度条的ListView

安卓系统进度条的ListView
EN

Stack Overflow用户
提问于 2015-11-18 19:40:25
回答 2查看 1.5K关注 0票数 2

我想创建一个可滚动的进度条列表。进度条的数量和每个进度条的内容是动态决定的,并在运行时决定。可以在ListView中放置创建和放置进度条吗?我在互联网上找不到任何相关的资源,因此我想确认这在目前的android框架中是否可能实现。

EN

回答 2

Stack Overflow用户

发布于 2015-11-18 19:55:30

是的,这是可能的,您必须创建自定义listView,并且可以在想要添加的时候动态添加项目

创建将包含listView的布局

代码语言:javascript
运行
复制
<ListView
    android:id="@+id/listView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />

创建将表示listView的单个项目的项目布局,并创建将为列表中的每个项目赋值的listViewAdapter

公共类ListAdapter扩展了ArrayAdapter{

代码语言:javascript
运行
复制
private final Context context;
private int layoutResourceID;
private ArrayList<YourDataModel> objects;


public ListAdapter(Context context, int layoutResourceID, ArrayList<YourDataModel> objects) {
    super(context, layoutResourceID, objects);

    this.context = context;
    this.layoutResourceID = layoutResourceID;
    this.objects = objects;
}

@Override
public View getView(int position, final View convertView, ViewGroup parent) {

    View row = convertView;

    final ListHolder listHolder;
    if(row == null) {
        LayoutInflater inflater = ((Activity)context).getLayoutInflater();
        row = inflater.inflate(layoutResourceID, parent, false);

        itemProgressBar = (ProgressBar) row.findViewById(R.id.item_progressbar);

        row.setTag(listHolder);

    } else {
        listHolder = (ListHolder) row.getTag();
    }


    final DataCategory list = objects.get(position);    // get your data object

    // assign values to your items of listView



    return row;
}

class ListHolder {
    ProgressBar itemProgressBar;
}

}

在上面的代码中,YourDataModel包含您的数据的java类,最后在您的主集中设置所有使其工作的东西。

代码语言:javascript
运行
复制
ListAdapterHome listAdapter = new ListAdapter(YourActivity.this,
        R.layout.item, ArrayListOfYourDataModel);   // pass the arrayList of your dataModel there

ListView listView = (ListView) view.findViewById(R.id.listView);
listView.setAdapter(listAdapterHome);
票数 2
EN

Stack Overflow用户

发布于 2015-11-18 19:44:15

这是可能的。您必须编写自己的ListAdapter (我建议覆盖SimpleArrayAdapter,但这取决于您的数据),并覆盖getView方法以生成包含ProgressBar的视图。

检查这个问题:Custom Adapter for List View

仅供参考: ListAdapter是生成ListView视图并为其赋值的类。通常,如果你生成一个SimpleArrayAdapter,你需要传递你想要它创建的布局。如果你只想在布局中设置一些文本,这是可行的。但是,要使用像ProgressBar这样特定的视图,您必须创建自己的ListAdapter来处理该特定视图。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33779107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档