如何在一行代码中获取和设置字符串数组?

时间:2017-03-20 09:03:21

标签: java android

我有一个字符串数组emails和一个字符串变量Category_name。要获取和设置Category_name的结果,请使用此选项:

holder.category_name.setText(mcategoryset.get(position).getCategory_name());

但对于emails这是一个字符串数组,我这样做:

holder.category_emails.setText(mcategoryset.get(position).getEmails().get(0));

即。我只获得了0位的价值。如何以编程方式获取所有值而不是仅获取单个值?

5 个答案:

答案 0 :(得分:2)

使用以下代码

String emails = "";

for(int i = 0; i<mcategoryset.get(position).getEmails().size();i++){
 emails = emails+mcategoryset.get(position).getEmails().get(i)+",";
}

holder.category_emails.setText(emails);

答案 1 :(得分:1)

试试这个:

final StringBuilder stringBuilder = new StringBuilder();

for (String email : categorySet.get(position).getEmails()) {
    if (!stringBuilder.toString().isEmpty()) {
        stringBuilder.append("\n");
    }
    stringBuilder.append(email);
}

holder.category_emails.setText(stringBuilder.toString());

答案 2 :(得分:0)

在您的POJO课程中,对于电子邮件getter,添加另一个getter,类似这样,

public String getFullEmails(){
    StringBuilder emailString = new StringBuilder();
    int length = emails.length();
    for(for int=0; i<length; i++){
        emailString.append(emails[i]);
        if(i != length-1){
            emailString.append(",\n");
        }
    }
    return emailString.toString();
}
  

这种在POJO类中编写逻辑而不是直接在Adapter中编写逻辑的方法将为您提供更清晰的代码,您可以在Adapter中使用Actual adapter逻辑,而不是一次又一次地编写相同的Email代码。

答案 3 :(得分:0)

您可以使用java.util.Arrays来尝试,这是java提供的实用程序类方法,可以简化这些操作。尝试做这样的事情: -

holder.category_emails.setText(Arrays.toString(mcategoryset.get(position).getEmails()));

其他选项包括: -

commons-lang也有 - ArrayUtils.toString(array)(但更喜欢JDK)

commons-lang允许使用自定义分隔符 - StringUtils.join(array,&#39;,&#39;)

Guava还允许使用分隔符,并且可以选择跳过空值:Joiner.on(',').skipNulls().join(array)

答案 4 :(得分:0)

我认为您应该重置您的功能,例如category_emails.setText(String[])或使用for-each来查看该值。