要实现这种类型的视图,你需要实现两件事。
ListView listView;
IArrayAdapter iArrayAdapter;
用xml提供的id初始化listView。
Activity.this.runOnUiThread(new Runnable() {
public void run() {
iArrayAdapter = new IArrayAdapter(Activity.this,
R.layout.list_item, "list of items group it from Bean");
listView.setAdapter(iArrayAdapter);
iArrayAdapter.notifyDataSetChanged();
}
});
list_item是您需要在列表中显示内容类型的另一种布局。
IArrayAdapter是类扩展ArrayAdapter
public class IArrayAdapter extends ArrayAdapter<IBean> {
private final Activity context;
private final ArrayList<IBean> iBeans;
private int resourceId;
public InboxArrayAdapter(Activity context, int resourceId,
ArrayList<IBean> iBeans) {
super(context, resourceId, inboxBeans);
this.context = context;
this.iBeans = iBeans;
this.resourceId = resourceId;
}
/*
* TO update View
*
* @see android.widget.ArrayAdapter#getView(int, android.view.View,
* android.view.ViewGroup)
*/
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View rowView = convertView;
if (rowView == null) {
LayoutInflater layoutInflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
rowView = layoutInflater.inflate(resourceId, null);
final IBean iBean = iBeans.get(position);
final ImageView imageView = (ImageView) rowView
.findViewById(R.id.message);
final TextView rowTxt = (TextView) rowView
.findViewById(R.id.senderName);
final TextView rowTxt1 = (TextView) rowView
.findViewById(R.id.senderMessage);
final TextView rowTxt2 = (TextView) rowView
.findViewById(R.id.senderTime);
final CheckBox check = (CheckBox) rowView.findViewById(R.id.check);
.....set text here.....
return rowView;
}
}
的ImageView,rowtext等的布局LIST_ITEM的一部分
和IBean是Java bean类包含的5项在列表中。 任何你不想让它留空的项目。
谢谢你的回答。据我所知,你只使用一个ListView(这将是我的问题中的A对象列表)。但是我总共有三个游标(用于A,B和C对象的列表)。沿着你的建议,它们必须出现在适配器的'getView()'方法的某处,并且适配器必须实现'LoaderManager.LoaderCallbacks'。对?感觉有点不对我... –
aha
在这里th行 iArrayAdapter = new IArrayAdapter(Activity.this, R.layout.list_item,“项目列表从Bean组”);我正在传递类型Ibean的数组列表,如您的案例类“A”。您要在布局list_item中提供的B或C列表的视图部分最大长度。 我需要了解LoaderManager.LoaderCallbacks。 –