我正在使用json解析,我发送了五封电子邮件和五个名字,作为回应它给出了
{
"invitefriend": [
{
"message": "Friend Request sent to : abc"
},
{
"message": "Friend Request sent to : def"
}
]
}
现在我正在尝试的是我想要在烤面包中获得abc和def,但它会逐一分开给出
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);
}
答案 0 :(得分: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();
}
});
答案 1 :(得分: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();
}
});
。只需将该调用移至循环外部:
ArrayList
此外,我们已定义msgs
Toast
来收集回复消息,我们msgs.toString()
直接使用 private int[] ICONS = {
R.drawable.tab_icon_home, R.drawable.tab_icon_heart,
R.drawable.tab_icon_news, R.drawable.tab_icon_profile
};
private final String[] TITLES = {"Home", "Shortlist", "Feed" , "Profile"};
ViewPager mViewpager;
TabLayout mTabs;
private FragmentPageAdapter pageAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTabs = (TabLayout) findViewById(R.id.tabs);
mViewpager = (ViewPager) findViewById(R.id.viewpager);
setupViewPager(mViewpager);
setupTabLayout(mTabs);
}
public void setupViewPager(ViewPager viewPager) {
pageAdapter = new FragmentPageAdapter(getApplicationContext(), getSupportFragmentManager());
pageAdapter.addFragment(CardFragment.getInstance(TITLES[0]), TITLES[0], ICONS[0]);
pageAdapter.addFragment(CardFragment.getInstance(TITLES[1]), TITLES[1], ICONS[1]);
pageAdapter.addFragment(CardFragment.getInstance(TITLES[2]), TITLES[2], ICONS[2]);
pageAdapter.addFragment(CardFragment.getInstance(TITLES[3]), TITLES[3], ICONS[3]);
viewPager.setAdapter(pageAdapter);
}
public void setupTabLayout(TabLayout tabLayout) {
tabLayout.setTabMode(TabLayout.MODE_FIXED);
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
tabLayout.setupWithViewPager(mViewpager);
for (int i = 0; i < tabLayout.getTabCount(); i++) {
TabLayout.Tab tab = tabLayout.getTabAt(i);
tabLayout.getTabAt(i).setText(TITLES[i]);
tab.setCustomView(pageAdapter.getTabView(i));
}
tabLayout.requestFocus();
}
。
答案 2 :(得分:0)
你必须做“”+数组列表然后它会在toast中显示所有数组列表项。或者,如果你需要一个接一个,那么采取一个长度为数组列表的for循环你只需添加数组列表[i]就像
for (int i=0;i<=arraylist.length;i++){
Toast.makeText(getContext(),arraylist[i],Toast.LENGTH_SHORT).show();
}
答案 3 :(得分:-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();
}