如何在Android上的TextView中设置List <String>

时间:2019-12-11 12:47:44

标签: java android android-recyclerview

在我的应用程序中,我有List<String>,并且我想将strings中的每一个都显示在textView中的此列表中,并用字符进行拆分。

例如::我的List<String>数据是= [“移动设备”,“平板电脑,”个人电脑“] 。我要设置此{{1} }放入strings中。

我想在textView 适配器中使用它。我写下面的代码,但只显示最后RecyclerViewstring

我的代码:

TextView

使用上述代码时,只需在@Override public void onBindViewHolder(ViewHolder holder, final int position) { holder.txtTitle.setText(list.get(position).getTitle()); if (list.get(position).getIsSet()) { if (list.get(position).getDesc().size() > 0) { for (String desc : list.get(position).getDesc()) { holder.txtState.setText(desc); } } } else { holder.txtState.setText("Not selected"); } holder.profileEditListLayout.setOnClickListener(v -> { Intent intent = new Intent(App.currentActivity, TesterProfileFilterActivity.class); intent.putExtra("MACHINE_STATE", list.get(position).getId()); App.currentActivity.startActivity(intent); }); }

中显示 Pc

我怎么办?

4 个答案:

答案 0 :(得分:1)

您可以尝试以下方式

StringBuffer br=new StringBuffer(); 
    for (String desc : list.get(position).getDesc()) {

            br.append(desc )

                }
     holder.txtState.setText(br.toString());

或者您可以使用最简单的方法

String textdata = String.join(",", list.get(position).getDesc());
 holder.txtState.setText(textdata );

答案 1 :(得分:1)

使用android.text.TextUtils.join()

holder.txtState.setText(TextUtils.join(", ", list.get(position).getDesc()));

答案 2 :(得分:0)

您可以像这样使用String.join

public static void main(String[] args) {
    List<String> list = new ArrayList<>();
    list.add("Mobile");
    list.add("Tablet");
    list.add("PC");
    /*
     * join the Strings from the list to a comma separated String
     * and enclose them in brackets
     */
    System.out.println("[" + String.join(", ", list) + "]");
}

输出应为

[Mobile, Tablet, PC]

在您的情况下,您将不得不写

holder.txtState.setText("[" + String.join(", ", list.get(position).getDesc()) + "]");

以使所有项目显示在TextView中。

答案 3 :(得分:0)

您正在覆盖循环内TextView内的文本。

应该是:

SpannableStringBuilder ssb = new SpannableStringBuilder();
    for (String desc : list.get(position).getDesc()) {
                    ssb.append(desc);
                    ssb.append("\n");
                }
    holder.txtState.setText(ssb.toString());