Bundle仅返回选定的最后一个值

时间:2018-03-30 08:18:00

标签: java android listview android-fragments bundle

我有listView个自定义适配器,我有checkBoxTextView,当我选择一些CheckBox时,我将它们添加到{{1}并发送到另一个bundle。在那个片段中,我有一个简单的TextView,我需要从fragment获取值并显示在TextView中。但问题是,当我从bundle中获取所选值并在TextView中设置时,它只显示最后一个值。我怎么解决这个问题?谢谢。

这里是我将所选值添加到包中的片段。

bundle

好的,请看这里。 nextButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ArrayList<Profession> professionList = dataAdapter.getProfessionList(); ArrayList<String> getProfessions = new ArrayList<>(); personalInfoFragment = new PersonalInfoFragment(); for (int i = 0; i < professionList.size(); i++) { Profession profession = professionList.get(i); if (profession.isSelected()) { getProfessions.add(profession.getName()); Bundle setProfessions = new Bundle(); setProfessions.putStringArrayList("String", getProfessions); personalInfoFragment.setArguments(setProfessions); } } replaceFragment(); } }); 是我需要发送值的片段。并且PersonalInfoFragment方法替换了片段。我完成了调试,并且已成功将所选值添加到包中。 在replaceFragment点击它会将所选数据保存到包中并替换该片段。

现在这里是我需要获取包并在textView中显示的片段。

nextButton

ProfessionText是我的textView,我需要设置值。但是,textView只显示了bundle中的最后一项。如何解决这个问题?谢谢你的阅读。

2 个答案:

答案 0 :(得分:1)

您可以更改代码,

SELECT object_key, audited_changes, (created_at + INTERVAL 'N HOURS') as created_at 
FROM pg_audits
WHERE
source_action = 'funding' AND
created_at >= CURRENT_DATE -1 AND
created_at < CURRENT_DATE
ORDER BY
created_at DESC

在下一个片段中,

        for (int i = 0; i < professionList.size(); i++) {
            Profession profession = professionList.get(i);
            if (profession.isSelected()) {
                getProfessions.add(profession.getName());
               }
        }
        Bundle setProfessions = new Bundle();
        setProfessions.putStringArrayList("String", getProfessions);
        personalInfoFragment.setArguments(setProfessions);
        replaceFragment();

答案 1 :(得分:1)

从我所看到的......我需要一个正确显示的值列表..这里发生的事情是每次迭代你为专业文本设置一个新的值,它会覆盖之前的那个......这就是为什么你看到了最后一个值..我想如果你想要一个textview列表,你必须在循环中创建一个新的textview。在这种情况下,你最好使用listview或recycler视图。