0

我有一个 ListFragment,它只包含我想要动态填充的 ListView。问题是我想用 RatingBar 视图填充它。我所做的是声明一个 RatingBar,然后将其添加到视图中。

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    RatingBar rb = new RatingBar(this.getActivity());
    rb.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));

    getListView().addView(rb);

    return (LinearLayout)inflater.inflate(R.layout.tab_frag1_layout, container, false);
}

我得到了错误:

java.lang.IllegalStateException: Content view not yet created

如何在 ListFragment 内的每个 ListView 行中添加 RatingBar?

编辑:好的,所以我将代码更改为:

RatingBar rb = new RatingBar(getActivity());
rb.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, 
                   LayoutParams.WRAP_CONTENT));
rb.setIsIndicator(true);
rb.setNumStars(5);

List<RatingBar> lrb =  new ArrayList<RatingBar>();

for (int i = 0; i < li.size(); i++)
    lrb.add(rb);

setListAdapter(new ArrayAdapter<RatingBar>(this.getActivity(),
               android.R.layout.simple_selectable_list_item, lrb));

但是,虽然我没有收到错误,但我得到了这些结果:

模拟器结果

4

1 回答 1

1

ArrayAdapter 显示比简单的“TextViews”更不方便。您必须创建自己的适配器,可能是从简单的BaseAdapter派生而来。然后你必须用你的数据填充你的适配器。它将使用正确的视图更新列表视图。你可以看看这个教程

于 2013-02-21T20:46:07.677 回答