23

我该如何改变这样的事情:

CharSequence cs[] = { "foo", "bar" };

到:

CharSequence cs[];

cs.add("foo"); // this is wrong...
cs.add("bar"); // this is wrong...
4

6 回答 6

90

使用 List 对象来管理项目,当您拥有所有元素时,然后转换为 CharSequence。像这样的东西:

List<String> listItems = new ArrayList<String>();

listItems.add("Item1");
listItems.add("Item2");
listItems.add("Item3");

final CharSequence[] charSequenceItems = listItems.toArray(new CharSequence[listItems.size()]);
于 2011-08-15T10:28:07.937 回答
6

你快到了。您需要为条目分配空间,这在上面的初始化案例中会自动为您完成。

CharSequence cs[];

cs = new String[2];

cs[0] = "foo"; 
cs[1] = "bar"; 

实际上 CharSequence 是一个接口,因此不能直接创建,但 String 作为其实现之一可以。

于 2011-08-15T10:23:17.620 回答
2

您还可以使用List, 在数组中拥有动态数量的成员(列表 :)):

List<CharSequence>  cs = new ArrayList<CharSequence>();

cs.add("foo"); 
cs.add("bar"); 

如果你想使用数组,你可以这样做:

CharSequence cs[];

cs = new String[2];

cs[0] = "foo"; 
cs[1] = "bar"; 
于 2011-08-15T10:26:58.217 回答
0

如果您希望它是动态的,您应该考虑另一种结构,然后在需要时将其转换为 CharSequence。或者,该线程可能很有用。

于 2011-08-15T10:22:44.163 回答
0

您可以使用 ArrayList 而不是原始数组,因为需要动态添加项目。

于 2011-08-15T10:27:47.130 回答
0

科特林

首先,将 ArrayList 转换为常规的可变列表。然后,使用Array 构造函数手动创建Array 。确保您的 init 函数生成适合数组的数据类型(例如,不要将 int 放入 CharSequence 数组中)。

val exampleArray: ArrayList<String> arrayListOf("test1", "test2", "test3")
val exampleList = exampleArray.toList()
val exampleItems: Array<CharSequence?>? = exampleList?.size?.let { it1 -> Array(it1,{ i -> exampleArray?.get(i) }) }
于 2020-03-10T15:14:35.847 回答