0

我不想为视图引用资源(又名 XML 布局),甚至不想使用充气服务。

我已经看过很多关于列表视图示例的页面,但每个人似乎最多都是从 ArrayAdapter 或 CursorAdapter 派生他们的类。

那么,任何人都可以向我展示如何从 BaseAdapter 派生一个类并通过修改其“getView”方法在其中制作自定义列表视图的示例吗?

4

1 回答 1

1

您可以在 Java 中以编程方式创建视图并设置其属性。如果您熟悉的话,这与使用 AWT/Swing 几乎相同。

public class MyAdapter extends BaseAdapter {
    private List<String> items; // could be an array/other structure 
                                // using Strings as example

    public MyAdapter(Context context, List<String> items) {
        this.context = context;
        this.items = new ArrayList<String>(items);
    }

    public int getCount() {
        return items.size();
    }

    // notice I changed the return type from Object to String
    public String getItem(int position) {
        return items.get(position);
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        // Really dumb implementation, you should use the convertView arg if it isn't null
        TextView textView = new TextView(context);
        textView.setText(getItem(position);
        /* call other setters on TextView */

        return textView;
    }
}

您可能必须覆盖其他一些方法,但它们应该是不言自明的。

于 2013-05-08T06:00:22.040 回答