我从数据库调用中提取产品对象列表,并且我希望使用非滚动页眉和页脚在我的活动中构建数据的ListView。每行包含一个产品缩略图,一些数据和一个水平排列的按钮。我知道使用ListView我可以使用单独的布局来扩充每一行。
我见过的大多数使用ListView的例子只显示了一个简单的字符串数组,它填充了活动的整个视图,但大多数现实世界的例子都会更复杂,我找不到任何好的例子来解释所有这些碎片合在一起。
有没有人对示例代码有任何指示并提供了很好的解释?
答案 0 :(得分:24)
答案 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