我想在电子邮件正文中发送带有一些值的ArrayList。 像这样:
Button bt_send = (Button) findViewById(R.id.bt_cadastrar_medicos);
bt_cadastrar_medicos.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("plain/text");
intent.putExtra(Intent.EXTRA_EMAIL, "email@email");
intent.putExtra(Intent.EXTRA_SUBJECT, "SUBJECT");
ArrayList<String> array = new ArrayList<String>();
for(int i=0; i<2; i++){
String ii = String.valueOf(i);
niveis.add(ii);
niveis.add(ii);
intent.putExtra(Intent.EXTRA_TEXT, niveis.get(i));
}
startActivity(Intent.createChooser(intent, "Choose the app to send:"));
}
});
这只是一个例子,实际上我想添加一个从java类中获取的数组位置值。但是在体内只出现最后一个值,在这种情况下将是“2”。
如何在体内显示所有这些?这可能吗?
谢谢。
答案 0 :(得分:0)
问题在于:
for(int i=0; i<2; i++){
niveis.add("1");
niveis.add("2");
intent.putExtra(Intent.EXTRA_TEXT, niveis.get(i));
}
在for
循环的第一次迭代中:
niveis looks like
1 , 2
Intent.EXTRA_TEXT is the key to: niveis.get(0) ==>> 1
for
循环的第二次迭代:
niveis looks like
1 , 2 , 1 , 2
Intent.EXTRA_TEXT is the key to: niveis.get(1) ==>> 2
不确定你要做什么。但是,
的原因但是在体内只出现了最后一个值,在这种情况下就是了 “2”
如上所述。
答案 1 :(得分:0)
在你的for循环中,这个调用
intent.putExtra(Intent.EXTRA_TEXT, niveis.get(i));
正在通过循环替换每次传递的EXTRA_TEXT数据。您需要构建要作为EXTRA_TEXT发送的整个字符串,然后通过调用putExtra()将其添加到intent中。 E.g。
StringBuilder sb = new StringBuilder();
for (String s : myArrayList) {
sb.append(s);
sb.append("\n");
}
intent.putExtra(Intent.EXTRA_TEXT, sb.toString());