我正在Android Studio中开发一个应用,并尝试通过电子邮件或WhatsApp发送列表。这是一个包含产品和数量的列表,但必须并排,例如:
product1 - quantity1
product2 - quantity2
product3 - quantity3
我尝试了很多方法,但是我无法使其并行工作,而我得到的最接近的代码是我粘贴在此处的代码。它必须一次进入所有列表。我该怎么办??
fabShare = findViewById(R.id.fabShare);
fabShare.setOnClickListener(new View.OnClickListener( ) {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE);
intent.setType("text/plain");
StringBuilder sb = new StringBuilder();
StringBuilder sb2 = new StringBuilder();
for (int i = 0; i < listaCompras1.size(); i++){
String p = listaCompras1.get(i);
sb.append(p);
String q = listaCompras2.get(i);
sb2.append(q);
}
intent.putExtra(Intent.EXTRA_TEXT, sb.toString() + "\n" + sb2.toString());
startActivity(Intent.createChooser(intent, "share via"));
}
});
答案 0 :(得分:2)
您可以使用html,也可以直接插入新行。
StringBuilder sb = new StringBuilder();
for (int i = 0; i < listaCompras1.size(); i++){
sb
.append(listaCompras1.get(i))
.append(" - ")
.append(listaCompras2.get(i))
.append("\n");
}
但是,与其存储并行的String列表,不如将其存储为单个List<Compra>
答案 1 :(得分:1)
尝试使用以下内容:
StringJoiner joiner = new StringJoiner("\n");
for (int i = 0; i < listaCompras1.size(); i++){
String p = listaCompras1.get(i);
String q = listaCompras2.get(i);
joiner.add(p + " - " + q);
}
String result = joiner.toString();
StringBuilder
的使用本来像
sb.append(p).append(" - ").append(q).append("\n");
在循环中,但最后会导致额外的换行符。 StringJoiner避免了这种情况。
您现有的代码将产品和数量值附加到两个不同的构建器中。上面的语句将它们附加在一个构建器中并排放置。