首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android.widget.ArrayAdapter<T>只接受行模板

android.widget.ArrayAdapter<T>只接受行模板
EN

Stack Overflow用户
提问于 2012-02-25 20:43:46
回答 3查看 303关注 0票数 0

我正在开发一个包含ListAtivity类的安卓应用程序,它的数据如下:

代码语言:javascript
复制
ArrayAdapter<Item> ara=new MyArrayAdapter(this,_items);

setListAdapter(ara);

我定义了MyArrayAdapter:

代码语言:javascript
复制
....
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,在它下面我显示了行列表。

你能帮帮我吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-25 23:48:40

如果您想要与简单ListView不同的布局,您可以选择将内容视图设置为布局文件,如下所示:

代码语言:javascript
复制
setContentView(R.layout.layout_with_diferrent_views); // call this on the onCreate() method

其中R.layout.layout_with_different_views可以是如下所示的xml布局:

代码语言:javascript
复制
<?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/listListView元素。当然,只要有一个id为@android:id/listListView元素,就可以有一个比上面的布局更复杂的布局

票数 0
EN

Stack Overflow用户

发布于 2012-02-25 20:54:27

您应该考虑使用listHeader : lv.addHeaderView(findViewById(R.id.header));这必须在活动的onCreate方法中完成,并且您必须提供一个带有id头的小部件。

票数 0
EN

Stack Overflow用户

发布于 2012-02-25 23:32:34

如果你想更好地使用activity.Then中的其他组件,可以考虑使用正常的活动,而不是ListActivity。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9444101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档