我从数据库调用中提取产品对象列表,并且我希望使用非滚动页眉和页脚在我的活动中构建数据的ListView。 每行包含一个产品缩略图,一些数据和一个水平排列的按钮。 我知道使用ListView我可以使用单独的布局来扩充每一行。
我见过的大多数使用ListView的例子只显示了一个简单的字符串数组,它填充了活动的整个视图,但是大多数现实世界的例子都会更复杂,我找不到任何好的例子来解释所有这些部分是如何适合的一起。
有没有人有任何关于示例代码的指针并有一个很好的解释?
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; } }
在ListView中拥有复杂行的最简单方法是通过SimpleAdapter。 这方面有很多例子。
要强制ListView填充屏幕的其余部分,请按如下所示设置属性:
使用LinearLayout。
在列表视图中:
android:layout_height="fill_parent", android:height="0dp", android:layout_weight="1"
在所有其他小部件上:
android:layout_height="wrap_content"
不要设置高度或layout_weight