0

我想在电子邮件的正文中发送一个带有一些值的 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”。

我如何将它们全部显示在体内?那可能吗?

谢谢你。

4

2 回答 2

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”

上面已经解释过了。

于 2013-07-26T20:49:22.067 回答
0

在你的 for 循环中,这个调用

intent.putExtra(Intent.EXTRA_TEXT, niveis.get(i));

在每次循环中替换 EXTRA_TEXT 数据。您需要构建要作为 EXTRA_TEXT 发送的整个字符串,然后通过一次调用 putExtra() 将其添加到意图中。例如

StringBuilder sb = new StringBuilder(); 
for (String s : myArrayList) {
    sb.append(s);
    sb.append("\n");
}
intent.putExtra(Intent.EXTRA_TEXT, sb.toString());
于 2013-07-26T20:54:44.670 回答