1

ListView にサブアイテムを追加しようとしています。私のlistViewは、アイテムの電子メールとサブアイテムの機関で整理する必要がありますが、次のコードでアイテムを追加したばかりですが、サブアイテムを追加するにはどうすればよいですか? 私は非常に多くのことを試しましたが、うまくいきません。

        List<Login> listEmails = JsonUtil.getAllEmails(json);

        ArrayList<String> emails = new ArrayList<String>();

        ArrayList<String> institutions = new ArrayList<String>();

        for (Login loginObj : listEmails) {

            emails.add(loginObj.getEmailAndress());
        }

        for (Login loginObj : listEmails) {

            institutions.add(loginObj.getInstitution());
        }

        ArrayAdapter<String> adapter;

        adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, emails);

        emailListView.setAdapter(adapter);
4

2 に答える 2

3

2つのテキストビューを備えたカスタムアダプタが必要であり、そのgetView()メソッドで各テキストビューに適切なデータを設定します。

emailsまた、これでアダプタに配列のみを渡すことになります。含めるには別の構造が必要になりinstitutionsます。

于 2013-03-22T20:53:35.293 に答える
0

これを行う正しい方法は、アイテムごとに HashMap を作成することです: 以下のコードを見てください:

List<Login> listEmails = JsonUtil.getAllEmails(json);

                ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>(listEmails.size());

                for (Login loginObj : listEmails) {

                    HashMap<String, String> item = new HashMap<String, String>();
                    item.put("email", loginObj.getEmailAndress());
                    item.put("institution", loginObj.getInstitution());

                    list.add(item);
                }

                String[] from = new String[] { "email", "institution" };

                int[] to = new int[] { android.R.id.text1, android.R.id.text2 };

                int nativeLayout = android.R.layout.two_line_list_item;

                emailListView.setAdapter(new SimpleAdapter(this, list, nativeLayout , from, to));
于 2013-03-22T21:07:20.750 に答える