在listview适配器中使用数组来声明元素的数量

时间:2012-04-08 17:55:15

标签: android listview adapter

我有一个自定义列表视图适配器。我可以从字符串数组填充它,但我应该知道有多少字符串。

这是列表视图的活动:

public class MainListActivity extends ListActivity {

    private TextView myText;
    private ArrayList<ListData> catalog;
    String[] names = { some names };
    String[] desc = {some description };
    int[] cost = { prices };
    int[] img = { images };

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        myText = (TextView) findViewById(R.id.titleMain);

        catalog = new ArrayList<ListData>();
        for (int i = 1; i <= 6; i++) {
            catalog.add(new ListData(names[i - 1], cost[i - 1], img[i - 1],
                    desc[i - 1]));
        }

        CatalogAdapter catAdapter;
        catAdapter = new CatalogAdapter(this, catalog);
        setListAdapter(catAdapter);
    }
}

这里我必须指定元素的数量:

for (int i = 1; i <= 6; i++) {
    catalog.add(new ListData(names[i - 1], cost[i - 1], img[i - 1],
    desc[i - 1]));

这是ListData活动:

public class ListData {
    String title;
    int price;
    int image;
    String discribe;

    ListData(String _title, int _price, int _image, String _discribe) {
        title = _title;
        price = _price;
        image = _image;
        discribe = _discribe;
    }
}

我也有AdapterActivity,但我认为我应该在这两个活动中改变一些东西。那么我应该如何更改下面的代码以不声明数组中的元素数量? 请帮忙。

1 个答案:

答案 0 :(得分:1)

String[]这样的数组不是为了做这些事情而设计的。请改用ListArrayList。您无需声明其大小。

(如果我理解你很好,names的大小不应该是恒定的。)