我有一个字符串数组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位的价值。如何以编程方式获取所有值而不是仅获取单个值?
答案 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
来查看该值。