2013-02-21 92 views
0

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

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 

我怎样才能在每个ListView的线,是一个ListFragment里面添加的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

ArrayAdapter不真正方便的显示比简单的'TextViews'更多。你必须创建你自己的适配器,可能是通过从简单的BaseAdapter派生。然后你必须用你的数据填充适配器。它将用正确的视图更新列表视图。你可以看看this tutorial