2014-09-27 72 views
0

我是新來的android和可能這是愚蠢的問題,但請幫助。我收到輸出JSONArray或JSONObject的價值捆綁和發送到服務器在android

聯繫人姓名:RRRR
電話號碼:XXXXXXXXX
聯繫人姓名:SSSS
電話號碼:YYYYYYYYY
電話號碼:AAAAAAAAA
電話號碼:泣鬼神
聯繫人姓名:TTTT
電話號碼:XXXXXXXXX
電話號碼:ccccccccc 。 。 。

//代碼

public void readContacts() { 
StringBuffer sb = new StringBuffer(); 
sb.append("......Contact Details....."); 
ContentResolver cr = getContentResolver(); 
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); 
String phone = null; 
String name = null; 

if (cur.getCount() > 0) { 
    while (cur.moveToNext()) { 
     String id = cur.getString(cur .getColumnIndex(ContactsContract.Contacts._ID)); 
     name = cur .getString(cur .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 
     if (Integer .parseInt(cur.getString(cur .getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) { 
      System.out.println("name : " + name + ", ID : " + id); sb.append("\n Contact Name:" + name); 
      Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?", new String[] { id }, null); 
      while (pCur.moveToNext()) { 
       phone = pCur .getString(pCur .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
      sb.append("\n Phone number:" + phone+":"+pCur.getCount()); System.out.println("phone" + phone); 
      }pCur.close(); 
     } 
     outputText.setText(sb); 
    } 

} 

}

P.S:我怎麼可以存儲在容器中的輸出中,然後將其捆綁併發送至服務器?

在此先感謝,

回答

1

我試圖把JSONArray聯繫人列表,

第1步:聲明JSONArray finalJarray;供將來使用時將JSONArray發送到服務器。

第2步:生成帶聯繫人姓名和多個電話號碼的JSONArray。唯一的密鑰名稱爲多個電話號碼,以便它無法覆蓋。

public void readContacts() { 
    try { 
     finalJarray = new JSONArray(); 

     StringBuffer sb = new StringBuffer(); 
     sb.append("......Contact Details....."); 
     ContentResolver cr = getContentResolver(); 
     Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, 
       null, null, null); 
     String phone = null; 
     String name = null; 

     if (cur.getCount() > 0) { 
      while (cur.moveToNext()) { 
       JSONObject contactObject = new JSONObject(); 

       String id = cur.getString(cur 
         .getColumnIndex(ContactsContract.Contacts._ID)); 
       name = cur 
         .getString(cur 
           .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 


       if (Integer 
         .parseInt(cur.getString(cur 
           .getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) { 
        System.out.println("name : " + name + ", ID : " + id); 
        sb.append("\n Contact Name:" + name); 

        contactObject.put("contact_name", name); 

        Cursor pCur = cr 
          .query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
            null, 
            ContactsContract.CommonDataKinds.Phone.CONTACT_ID 
              + " = ?", new String[] { id }, 
            null); 
        int tmpPhoneCount = 0; 
        while (pCur.moveToNext()) { 
         phone = pCur 
           .getString(pCur 
             .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
         sb.append("\n Phone number:" + phone + ":" 
           + pCur.getCount()); 
         System.out.println("phone" + phone); 
         contactObject.put("phone_number_"+tmpPhoneCount, phone); 
         tmpPhoneCount++; 
        } 
        pCur.close(); 
        finalJarray.put(contactObject); 
       } 
       // outputText.setText(sb); 
      } 
     } 
     System.out.println("finalJarray.toString() = " 
       + finalJarray.toString()); 
    } catch (Exception e) { 
     // TODO: handle exception 
     e.printStackTrace(); 
    } 
} 

我試過在我的設備上,讓我知道是否有任何查詢。

+0

感謝chitrang但contactObject只有姓名和電話號碼 – user3721186 2014-09-28 04:36:55

+0

我試過在我的設備上,它也有聯繫人姓名以及多個電話號碼。你能看到日誌貓,然後發送它。 – Chitrang 2014-09-28 04:42:14

+0

是啊,只有一條線是如果條件以上,所以我現在得到它現在它的工作很好謝謝,並有數組中的空集例如:[{},{},{「phone_number_0」:「ffffff」,「contact_name」:你可以請電話如何刪除這個空集 – user3721186 2014-09-28 04:47:37

相關問題