2016-12-09 50 views
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); 

有什麼建議嗎?

+1

只是注意:不要串聯'內循環String's,使用''StringBuilder'or代替StringBuffer'。 – manfcas

+1

您在ListView中顯示namearray時正在打印phonecsv,是否有些名稱沒有相應的電話號碼? – rnk

+1

@manfcas只有'StringBuilder','StringBuffer'已過時。 – Tom

回答

0

您可以嘗試遍歷ArrayList並單獨打印每行,而不是嘗試將其全部打印出來。這是假定phonecsv是一個ArrayList <字符串>:

 for (String temp : phonecsv) { 
      System.out.println(temp); 
     }