android,如何从XML添加ListView项?

时间:2011-07-20 17:52:04

标签: android listview

我有一个XML(absolutelayout)模板,我希望我的ListView项目看起来像。

将这些项目添加到ListView的最佳方法是什么?

On,还有一件事,我如何从java更改ListView的高度?

谢谢! :)

2 个答案:

答案 0 :(得分:2)

<ListView android:id="@+id/list" android:layout_width="fill_parent"
    android:layout_height="0dip" android:focusable="false" android:layout_weight="1" />

    <TextView android:id="@+id/empty" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:gravity="center"
        android:text="Loading" android:visibility="invisible" />

</LinearLayout>

这就是我要添加您的商品VIEWS的意思。然后用数据填充您的项目。

通过修改Layout.Params

,可以实现更改列表视图高度或任何其他描述

答案 1 :(得分:0)

制作一个像这样的列表视图适配器,(联系人列表的样本)

public class ContactListAdapter extends ArrayAdapter<Contact>
{

    private int resource;

    public ContactListAdapter(Context context, int resource, List<Contact> items)
    {
        super(context, resource, items);

        this.resource = resource;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent)
    {
        ViewHolder holder = null;
        LinearLayout contactListView;

        if (convertView == null)
        {
            contactListView = new LinearLayout(getContext());
            String inflater = Context.LAYOUT_INFLATER_SERVICE;
            LayoutInflater layoutInflater;
            layoutInflater = (LayoutInflater) getContext().getSystemService(inflater);
            layoutInflater.inflate(resource, contactListView, true);

            holder = new ViewHolder();

            holder.textViewName = (TextView) contactListView.findViewById(R.id.name);
            holder.textViewAddress = (TextView) contactListView.findViewById(R.id.address);

            contactListView.setTag(holder);
        }
        else
        {
            contactListView= (LinearLayout) convertView;

            holder = (ViewHolder) contactListView.getTag();
        }

        Contact item = getItem(position);

        holder.textViewName.setText(item.getName());
        holder.textViewAddress.setText(item.getAddress());

        return contactListView;
    }

    protected static class ViewHolder
    {
        TextView textViewName;
        TextView textViewAddress;
    }
}

将此适配器设置为列表视图。将xml布局的资源ID传递给此适配器。它会从xml中收缩视图并将其添加到列表视图中。

您还可以在适配器的上述 getView()方法中调整listview项的高度。使用 LayoutParams ofcourse。