web-dev-qa-db-ja.com

複雑なデータと各行の複雑なレイアウトを持つ複雑なListViewの例?

データベースコールから製品オブジェクトのリストを取得しています。スクロールしないヘッダーとフッターを使用して、アクティビティのデータのListViewを作成します。各行は、製品のサムネイル、いくつかのデータ、および水平に配置されたボタンで構成されます。 ListViewを使用すると、個別のレイアウトを使用して各行を拡張できることを理解しています。

ListViewを使用して見たほとんどの例は、アクティビティのビュー全体を満たす単純な文字列の配列を示していますが、ほとんどの実際の例はより複雑であり、これらのすべての部分がどのように適合するかを説明する良い例を見つけることができません一緒。

誰かがサンプルコードへのポインタを持っていますか?

24
Eno

私を大いに助けた例:

http://Android-developers.blogspot.com/2009/02/Android-layout-tricks-1.html

これがあなたにも役立つことを願っています。

24
Andy
private static class CustomCursorAdapter extends CursorAdapter {

    protected ListView mListView;

    protected static class RowViewHolder {
        public TextView mTitle;
        public TextView mText;
    }

    public CustomCursorAdapter(Activity activity) {
        super();
        mListView = activity.getListView();
    }

    @Override
    public void bindView(View view, Context context, Cursor cursor) {
        // do what you need to do
    }

    @Override
    public View newView(Context context, Cursor cursor, ViewGroup parent) {
        View view = View.inflate(context, R.layout.row_layout, null);

        RowViewHolder holder = new RowViewHolder();
        holder.mTitle = (TextView) view.findViewById(R.id.Title);
        holder.mText = (TextView) view.findViewById(R.id.Text);

        holder.mTitle.setOnClickListener(mOnTitleClickListener);
        holder.mText.setOnClickListener(mOnTextClickListener);

        view.setTag(holder);

        return view;
    }
}
6
sreejithmohanan

ListViewで複雑な行を作成する最も簡単な方法は、SimpleAdapterを使用することです。そのための多くの例があります。

ListViewに画面の残りの部分を強制的に入力させるには、プロパティを次のように設定します。

LinearLayoutを使用します。

リストビューで:

Android:layout_height="fill_parent",
Android:height="0dp",
Android:layout_weight="1"

他のすべてのウィジェット:

Android:layout_height="wrap_content"

高さまたはlayout_weightを設定しないでください

3
Cheryl Simon