2010-02-16 41 views
22

从数据库调用中拉出产品对象的列表,我想用非滚动的页眉和页脚在我的活动中构建数据的ListView。每行将包含产品缩略图,一些数据和水平排列的按钮。我明白,使用ListView我可以使用单独的布局来膨胀每一行。具有复杂数据和每行复杂布局的复杂ListView示例?

我在ListView中看到的大多数示例都显示了一个简单的字符串数组,可以填充整个活动视图,但是大多数现实世界的示例会更加复杂,而且我找不到任何可以解释所有这些片段都合在一起。

有没有人有任何指示示例代码与一个很好的解释?

回答

3

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

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

使用的LinearLayout。

列表视图:

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

在所有其他部件:

android:layout_height="wrap_content" 

不要设置一个高度或layout_weight

+0

另一个不显示主布局XML的例子。通常情况下,应用程序将有一个标题,一个项目列表和可能在底部附近的更多小部件。不知道如何让底部的小部件停留在底部,而不是接管整个家长。我想要列表视图展开以填充页眉和页脚小部件之间的空间,但之后它应该滚动而不影响它们。 – Eno

+0

我错过了这部分问题,请参阅编辑。 –

+0

链接不起作用,请检查您的链接。 – Deepak

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