Android 手动填充列表视图

Android 手动填充列表视图,android,android-layout,Android,Android Layout,是否有方法使用多个数组手动填充包含多个列的ListView?我需要构建布局的一部分,我想使用ListView,但我需要用数据填充几个视图项。因为它不是来自数据库,所以我不想使用游标,我只想使用几个并行数组。这可能吗?根据我是否正确解释了您的问题,这应该可以通过适配器实现: 您可以扩展BaseAdapter,覆盖getView(),并让它返回一些视图组,其中包含表示不同列表中数据的小部件 对所选视图组进行子类化,以构建更易于回收的复合视图: public class DoubleText exte

是否有方法使用多个数组手动填充包含多个列的ListView?我需要构建布局的一部分,我想使用ListView,但我需要用数据填充几个视图项。因为它不是来自数据库,所以我不想使用游标,我只想使用几个并行数组。这可能吗?

根据我是否正确解释了您的问题,这应该可以通过适配器实现:

您可以扩展BaseAdapter,覆盖getView(),并让它返回一些视图组,其中包含表示不同列表中数据的小部件

对所选视图组进行子类化,以构建更易于回收的复合视图:

public class DoubleText extends LinearLayout {
    TextView t1, t2;
    public DoubleText(Context c) {
        super(c);
        t1 = new TextView(c);
        t2 = new TextView(c);
        this.addView(t1, 0);
        this.addView(t2, 1);
    }
    public void setText(String s1, String s2) {
        t1.setText(s1);
        t2.setText(s2);
    }
}
子类化BaseAdapter,但并不是所有需要的都显示出来,还有更多, 但应该更容易弄清楚,因为这是最大的差异所在 与使用适配器的其他示例相比:

public class DoubleAdaptor extends BaseAdaptor {
    List<String> lista, listb; // <- these are your paralell arrays, they and the
    Context c;                 // context need to be initialized by some method
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        DoubleText recycled = (DoubleText) convertView;
        if (recycled == null) {
            recycled = new Double(context);
        recycled.setText(lista.get(position), listb.get(position));
        return recycled;
    }
}
公共类DoubleAdapter扩展BaseAdapter{

List lista,listb;//这是可以做到的;问题是如何做到;-)如果您真的想使用多个并行数组,那么您可能别无选择,只能使用子类对于对象数组,您可以从中进行稍微简单的子类化。在后一种情况下,我认为您需要覆盖的唯一方法是。

您是否尝试将其用作主列表适配器?->

CommonsGuy有很好的例子,并且可以很容易地定制以生成带有动态项的ListView