How do I change something like this:
CharSequence cs[] = { "foo", "bar" };
to:
CharSequence cs[];
cs.add("foo"); // this is wrong...
cs.add("bar"); // thi开发者_运维问答s is wrong...
Use a List object to manage items and when you have all the elements then convert to a CharSequence. Something like this:
List<String> listItems = new ArrayList<String>();
listItems.add("Item1");
listItems.add("Item2");
listItems.add("Item3");
final CharSequence[] charSequenceItems = listItems.toArray(new CharSequence[listItems.size()]);
You are almost there. You need to allocate space for the entries, which is automatically done for you in the initializing case above.
CharSequence cs[];
cs = new String[2];
cs[0] = "foo";
cs[1] = "bar";
Actually CharSequence is an Interface and can thus not directly be created, but String as one of its implementations can.
You can also use List
, to have a dynamic number of members in the array(list :)):
List<CharSequence> cs = new ArrayList<CharSequence>();
cs.add("foo");
cs.add("bar");
If you want to use array, you can do:
CharSequence cs[];
cs = new String[2];
cs[0] = "foo";
cs[1] = "bar";
If you want it to be dynamical, you should think in an another structure and then convert it to a CharSequence when you need. Alternatively, that thread can be useful.
You could use ArrayList instead of raw arrays since need to add items dynamically.
KOTLIN
First, convert the ArrayList to a regular, mutable list. Then, manually create the Array using the Array constructor. Make sure that your init function generates a data type that fits the Array (ex. don't put an int in a CharSequence arrray).
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) }) }
精彩评论