我有一个菜单结构,可以输出最喜欢的配置项的列表。
在 Android SDK 的 View 示例中,我想使用一个名为 ExpandableList1.java 的 View 示例。
为了使用该 View ,我必须传递一个 String[] groups
结构和一个 String[][] Children
结构。
使用groups.toArray
将字符串列表从菜单对象转换为数组没有问题。我遇到的问题是将 Collection 夹项目转换为数组数组。最喜欢的项目是菜单对象中包含的数组列表。
代码的相关部分粘贴在这里。首先,我们使用字符串数组调用 MyExpandableListAdapter:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ArrayList<String> favouriteMenuList = Main.menuList.getFavouriteMenusFullPath();
mAdapter = new MyExpandableListAdapter(favouriteMenuList);
setListAdapter(mAdapter);
registerForContextMenu(getExpandableListView());
}
Next MyExpandableListAdapter 及其构造函数显示数组转换发生的位置:
public class MyExpandableListAdapter extends BaseExpandableListAdapter {
// Sample data set. children[i] contains the children (String[]) for groups[i].
// private String[] groups = { "People Names", "Dog Names", "Cat Names", "Fish Names" };
private String [] groups;
private String[][] children = {
{ "Arnold", "Barry", "Chuck", "David" },
{ "Ace", "Bandit", "Cha-Cha", "Deuce" },
{ "Fluffy", "Snuggles" },
{ "Goldy", "Bubbles" }
};
public MyExpandableListAdapter(ArrayList<String> groups) {
this.groups = groups.toArray(new String[groups.size()]);
}
正如您在上面的代码片段中看到的,转换为 String[] groups
没有问题。我的想法是迭代菜单对象,提取 Collection 夹列表,然后??由于数组大小是固定的,我如何在 Java 中构建动态数组。
这是我想到的外循环:
public ArrayList<FavouritesObject> getFavouriteItems() {
ArrayList<FavouritesObject> favouritesList = new ArrayList<FavouritesObject>();
for (MenuObject m : allMenusList) {
if (m.isFavourite) {
favouritesList.add(m.getFavouriteItems());
}
}
return favouritesList;
}
最佳答案
使用 ArrayList (res
) 动态添加项目并将其转换为数组 (mString
)。
ArrayList<String> res = new ArrayList<String>();
res.add("Item");
String[] mString = (String[]) res.toArray(new String[res.size()]);
关于java - 将 ArrayList 中的字符串对象转换为数组数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5336925/