次のコードがあります:
String[] where;
where.append(ContactsContract.Contacts.HAS_PHONE_NUMBER + "=1");
where.append(ContactsContract.Contacts.IN_VISIBLE_GROUP + "=1");
これら 2 つの追加はコンパイルされません。どうすれば正しく動作するのでしょうか?
ベストアンサー1
配列のサイズは変更できません。より大きな配列が必要な場合は、新しい配列をインスタンス化する必要があります。
より良い解決策は、ArrayList
必要に応じて拡張できます。このメソッドは、ArrayList.toArray( T[] a )
この形式で必要な場合に配列を返します。
List<String> where = new ArrayList<String>();
where.add( ContactsContract.Contacts.HAS_PHONE_NUMBER+"=1" );
where.add( ContactsContract.Contacts.IN_VISIBLE_GROUP+"=1" );
単純な配列に変換する必要がある場合は...
String[] simpleArray = new String[ where.size() ];
where.toArray( simpleArray );
しかし、配列で行うほとんどの操作は、この ArrayList でも実行できます。
// iterate over the array
for( String oneItem : where ) {
...
}
// get specific items
where.get( 1 );