我正在开发一个包含ListAtivity类的安卓应用程序,它的数据如下:
ArrayAdapter<Item> ara=new MyArrayAdapter(this,_items);
setListAdapter(ara);我定义了MyArrayAdapter:
....
public MyArrayAdapter(Activity context, List<BirthdayContact> list) {
super(context,R.layout.list_row,0,list);
//super(context, R.layout.birthday_list, list);
this.context = context;
this.list = list;
}
public View getView(int position, View convertView, ViewGroup parent) {
View view = null;
if (convertView == null) {
LayoutInflater inflator = context.getLayoutInflater();
view = inflator.inflate(R.layout.birthday_list_row, null);
final ViewHolder viewHolder = new ViewHolder();
viewHolder._cName= (TextView) view.findViewById(R.id.contact_name);
viewHolder._cImage = (ImageView) view.findViewById(R.id.contact_image);
viewHolder._cbirthDay=(TextView)view.findViewById(R.id.contact_birthday_remained);
view.setTag(viewHolder);
}.
但这种方式的问题是,你不能只分配每一行的模板,而且你不能在列表视图上有其他不属于数据列表的小部件。我的意思是,我想要有一个向用户显示消息的TextView,在它下面我显示了行列表。
你能帮帮我吗?
发布于 2012-02-25 23:48:40
如果您想要与简单ListView不同的布局,您可以选择将内容视图设置为布局文件,如下所示:
setContentView(R.layout.layout_with_diferrent_views); // call this on the onCreate() method其中R.layout.layout_with_different_views可以是如下所示的xml布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</ListView>
</LinearLayout>因为扩展了ListActivity,所以在布局中必须有一个id为@android:id/list的ListView元素。当然,只要有一个id为@android:id/list的ListView元素,就可以有一个比上面的布局更复杂的布局
发布于 2012-02-25 20:54:27
您应该考虑使用listHeader : lv.addHeaderView(findViewById(R.id.header));这必须在活动的onCreate方法中完成,并且您必须提供一个带有id头的小部件。
发布于 2012-02-25 23:32:34
如果你想更好地使用activity.Then中的其他组件,可以考虑使用正常的活动,而不是ListActivity。
https://stackoverflow.com/questions/9444101
复制相似问题