2015-11-14 70 views
1

我使用JSON解析,我並且發送5個電子郵件和五個名字,並響應它給如何在吐司中顯示數組列表項?

{ 
    "invitefriend": [ 
     { 

      "message": "Friend Request sent to : abc" 
     }, 
     { 

      "message": "Friend Request sent to : def" 
     } 
    ] 
} 

現在我想做是我想在敬酒ABC和閃避,但它提供了一個接一個分開

JSONArray jsonary=json.getJSONArray("invitefriend"); 

      for (int i = 0; i < jsonary.length(); i++) { 
       JSONObject c = jsonary.getJSONObject(i); 
       // creating new HashMap 
       HashMap<String, String> map = new HashMap<String, String>(); 
       // adding each child node to HashMap key => value 
       // map.put(INTERESTACCEPT_USER_ID, c.getString(INTERESTACCEPT_USER_ID)); 
       map.put(TAG_SUCCESS_INVITE,c.getString(TAG_SUCCESS_INVITE)); 
       map.put(TAG_SUCCESS_MESSAGE, c.getString(TAG_SUCCESS_MESSAGE)); 

       ArrayList<String> msgs=new ArrayList<String>(); 
       msgs=map.put(TAG_SUCCESS_MESSAGE, c.getString(TAG_SUCCESS_MESSAGE)); 
       System.out.println("MESSAGE : " + msg); 

       // adding HashList to ArrayList 

       getActivity().runOnUiThread(new Runnable() { 
        @Override 
        public void run() { 
         Toast.makeText(getActivity(),""+msgs, Toast.LENGTH_LONG).show(); 
        } 
       }); 
       data.add(map); 
      } 
+2

您在for循環中使用Toast,因此它將逐個顯示Toast。只需拿出外面的吐司:) –

+0

此外,你可以''吐司''ArrayList'' msgs.toString()'直接。 'ArrayList'和'HashMap'的'toString()'方法都返回可讀輸出。 –

+0

@MikeM。你可以粘貼爲答案 – albert

回答

1

你越來越多Toast因爲你是Toast荷蘭國際集團的for循環中。簡單地說就是呼叫轉移到外循環:

JSONArray jsonary=json.getJSONArray("invitefriend"); 
ArrayList<String> msgs=new ArrayList<String>(); 
String msg = null; 

for (int i = 0; i < jsonary.length(); i++) { 
    JSONObject c = jsonary.getJSONObject(i); 
    // creating new HashMap 
    HashMap<String, String> map = new HashMap<String, String>(); 
    // adding each child node to HashMap key => value 
    // map.put(INTERESTACCEPT_USER_ID, c.getString(INTERESTACCEPT_USER_ID)); 
    map.put(TAG_SUCCESS_INVITE,c.getString(TAG_SUCCESS_INVITE)); 
    map.put(TAG_SUCCESS_MESSAGE, c.getString(TAG_SUCCESS_MESSAGE)); 

    msg=map.put(TAG_SUCCESS_MESSAGE, c.getString(TAG_SUCCESS_MESSAGE)); 
    msgs.add(msg); 
    System.out.println("MESSAGE : " + msg); 

    // adding HashList to ArrayList 
    data.add(map); 
} 

getActivity().runOnUiThread(new Runnable() { 
     @Override 
     public void run() { 
      Toast.makeText(getActivity(), msgs.toString(), Toast.LENGTH_LONG).show(); 
     } 
    }); 

此外,我們已經定義了ArrayListmsgs收集響應消息,我們Toast直接與msgs.toString()

+0

恩,你目前的代碼不會像你發佈的那樣編譯。我會建議如何解決它,但現在我不太確定你想要做什麼。你想烤麪包是數據嗎? –

+0

meesage的回覆項目我想要在烤麪包上.. – albert

+0

好吧,我想我明白你要去哪裏了。我在你的代碼中洗牌了一些東西。 –

0

你必須做「」+數組列表然後它會顯示烤麪包中的所有數組列表項。或者,如果你需要一個都是一個,然後拿一個for循環與數組列表的長度在你剛剛添加的數組列表[i]像

for (int i=0;i<=arraylist.length;i++){ 

     Toast.makeText(getContext(),arraylist[i],Toast.LENGTH_SHORT).show(); 
    } 
+0

你的意思是我需要一個更多的循環?在單個吐司顯示所有項目? – albert

+0

我想用abc和def用逗號分開單獨烤麪包 – albert

+0

就這樣做 - > Toast.makeText(getContext(),「」+ arraylist [i],Toast.LENGTH_SHORT).show();在循環之外。 –

-1

嘗試這樣的。我認爲它有幫助

featured_list = new ArrayList<Featured>(); 
for (int i = 0; i < jarray.length(); i++) { 
JSONObject object = jarray.getJSONObject(i); 
Toast.makeText(getApplicationContext(), object.getString("thumb").toString(), Toast.LENGTH_LONG).show(); 
}    
1

試試這個,

JSONArray jsonary=json.getJSONArray("invitefriend"); 
    ArrayList<String> msgs; 
      for (int i = 0; i < jsonary.length(); i++) { 
       JSONObject c = jsonary.getJSONObject(i); 
       // creating new HashMap 
       HashMap<String, String> map = new HashMap<String, String>(); 
       // adding each child node to HashMap key => value 
       // map.put(INTERESTACCEPT_USER_ID, c.getString(INTERESTACCEPT_USER_ID)); 
       map.put(TAG_SUCCESS_INVITE,c.getString(TAG_SUCCESS_INVITE)); 
       map.put(TAG_SUCCESS_MESSAGE, c.getString(TAG_SUCCESS_MESSAGE)); 

       msgs = new ArrayList<String>(map.values()); 

       System.out.println("MESSAGE : " + msgs); 

       // adding HashList to ArrayList 


       data.add(map); 
      } 
      getActivity().runOnUiThread(new Runnable() { 
        @Override 
        public void run() { 
         Toast.makeText(getActivity(),msgs,Toast.LENGTH_LONG).show(); 
        } 
       }); 
+0

難以忽略的類型..必需的arraylist發現字符串 – albert

+0

你在哪裏得到這個錯誤?你的代碼中還有msgs和msg將它改正爲msgs。 –

+0

msgs = map.put(TAG_SUCCESS_MESSAGE,c.getString(TAG_SUCCESS_MESSAGE));在這條線附近我得到錯誤 – albert