2015-11-14 56 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