动态地将RatingBar添加到ListFragment中

时间:2013-02-21 16:29:20

标签: dynamic android-listview android-listfragment ratingbar

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

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));

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

Emulator Results

1 个答案:

答案 0 :(得分:1)

ArrayAdapter显示的不仅仅是简单的'TextViews'。您必须创建自己的适配器,可能来自简单的BaseAdapter。然后你必须用你的数据填充适配器。它将使用正确的视图更新列表视图。你可以看看this tutorial