我有一个自定义列表视图适配器。我可以从字符串数组填充它,但我应该知道有多少字符串。
这是列表视图的活动:
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,但我认为我应该在这两个活动中改变一些东西。那么我应该如何更改下面的代码以不声明数组中的元素数量? 请帮忙。
答案 0 :(得分:1)
像String[]
这样的数组不是为了做这些事情而设计的。请改用List
或ArrayList
。您无需声明其大小。
(如果我理解你很好,names
的大小不应该是恒定的。)