0
電話からすべての連絡先とその番号を取得しようとしていますが、値を印刷しようとすると配列が切り取られてしまい、結果の半分が印刷されませんこれは起こっている可能性がありますが、リストビューではすべてが印刷されます。スニペットは次のとおりですすべての値を持っていないArraylist
String namearray[];
String phonearray[];
lv1 = (ListView) findViewById(R.id.listView1);
Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null, null);
while (phones.moveToNext())
{
//Read Contact Name
String name=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
//Read Phone Number
String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
namecsv += name + ",";
phonecsv += phoneNumber + ",";
}
phones.close();
//==============================================
// Convert csvstrimg into array
//==============================================
namearray = namecsv.split(",");
phonearray = phonecsv.split(",");
System.out.println("Names: " +phonecsv.toString());
//Create Array Adapter and Pass ArrayOfValues to it.
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,android.R.id.text1,namearray);
//BindAdpater with our Actual ListView
lv1.setAdapter(adapter);
お勧めはありますか?
ジャスト注:これはphonecsvは、ArrayListの<文字列>であることを前提として、ループ内の 'String'sを連結していない、代わりに' 'StringBuilder'or StringBuffer'を使用しています。 – manfcas
ListViewでnamearrayを表示しているときにphonecsvを表示していますが、一部の名前に対応する電話番号がない可能性がありますか? – rnk
@manfcas 'StringBuilder'、' StringBuffer'のみが古くなっています。 – Tom