如何在吐司中显示arraylist项目?

时间:2015-11-14 05:52:39

标签: android arraylist android-toast

我正在使用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);
            }

4 个答案:

答案 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循环内forJSONArray 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();
 }