0

我是 Android 新手,有一个简单的问题。目前我正在开发一个产品应用程序,它允许用户添加、删除和浏览各种产品。该应用程序使用预定义的基于 XML 的布局文件作为填充整个屏幕以显示当前产品详细信息的模板。当用户添加新产品时,我想重新使用相同的布局文件,但用新产品的信息填充它。此外,我想保留以前添加的产品(例如 ArrayList),用户可以通过水平滑动(从左到右或从右到左)浏览此列表。现在,最好用什么来表示每个产品(视图、子视图等),以及如何重用相同的基于 XML 的布局文件来显示不同产品的详细信息。请原谅我的英语并提前感谢您的帮助

4

2 回答 2

1

您所描述的内容由ViewPager实现。除了 API 参考之外,开发者网站上还有一篇博文。

要实现它,您需要创建一个PagerAdapter子类来为ViewPager.

于 2012-04-14T14:05:41.190 回答
1

您可以创建一个扩展 ArrayAdapter 的新类,然后覆盖 getView() 方法来扩展您的自定义布局。getView() 将返回单行的视图。这样您就可以重复使用您的布局。所以它看起来像:

public class ProductAdapter extends ArrayAdapter<Product> {

    private LayoutInflater li;

    public ProductAdapter(Context context, List<Product> products) {
        super(context, 0, products);
        li = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        // Get the product of the position
        Product product = getItem(position);

        View v = convertView;
        if ( v == null ) {
           // Your custom layout file for a single row in the list.
            v = li.inflate(R.layout.product_row, null);
        }

        // Populate your view here. Use v.findViewById().

        return v;
    }

}

要在 ListActivity 中显示列表,请使用:

// The variable products is your initial list of products.
ProductAdapter adapter = new ProductAdapter(this, products); 
setListAdapter(adapter);

添加产品时,您可以通过调用 adapter.add()(如果您想将产品添加到列表末尾)或 insert()(指定您在产品列表中的位置)将其添加到 ArrayAdapter想要在 ProductAdapter 上插入新产品)方法。之后,您可以调用 adapter.notifyDataSetChanged() 来通知您的适配器数据已更改并且必须刷新列表。

于 2012-04-14T11:04:57.873 回答