具有复杂数据和每行复杂布局的复杂ListView示例?

时间:2010-02-16 18:20:29

标签: android listview layout

我从数据库调用中提取产品对象列表,并且我希望使用非滚动页眉和页脚在我的活动中构建数据的ListView。每行包含一个产品缩略图,一些数据和一个水平排列的按钮。我知道使用ListView我可以使用单独的布局来扩充每一行。

我见过的大多数使用ListView的例子只显示了一个简单的字符串数组,它填充了活动的整个视图,但大多数现实世界的例子都会更复杂,我找不到任何好的例子来解释所有这些碎片合在一起。

有没有人对示例代码有任何指示并提供了很好的解释?

3 个答案:

答案 0 :(得分:24)

一个帮助了我很多的例子:

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

我希望这对你也有用。

答案 1 :(得分:6)

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

答案 2 :(得分:3)

在ListView中拥有复杂行的最简单方法是通过SimpleAdapter。这方面有很多例子。

要强制ListView填充屏幕的其余部分,请按以下方式设置属性:

使用LinearLayout。

在列表视图中:

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

在所有其他小部件上:

android:layout_height="wrap_content"

不要设置高度或layout_weight