web-dev-qa-db-ja.com

Android、CharSequence配列を動的に入力する方法(初期化ではない?)

次のように変更するにはどうすればよいですか。

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

に:

CharSequence cs[];

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

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()]);
85
David Guerrero

あと少しです。エントリにスペースを割り当てる必要があります。これは、上記の初期化の場合に自動的に行われます。

CharSequence cs[];

cs = new String[2];

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

実際には、CharSequenceはインターフェイスであるため、直接作成することはできませんが、その実装の1つであるStringは作成できます。

3
Heiko Rupp

Listを使用して、array(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"; 
2
MByD

[〜#〜] kotlin [〜#〜]

まず、ArrayListを通常の変更可能なリストに変換します。次に、 Arrayコンストラクタ を使用して手動で配列を作成します。 init関数が配列に適合するデータ型を生成することを確認してください(たとえば、CharSequence配列にintを入れないでください)。

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) }) }
0
Joe Muller

動的にしたい場合は、別の構造で考え、必要に応じてCharSequenceに変換する必要があります。または、 そのスレッド も役立ちます。

0
Romain Piel

アイテムを動的に追加する必要があるため、生の配列の代わりにArrayListを使用できます。

0
Ronnie