0

動的に入力したいListViewのみを含むListFragmentがあります。問題は、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 に答える