如何在android中发送电子邮件正文中的ArrayList?

时间:2013-07-26 20:27:47

标签: android email android-intent

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

如何在体内显示所有这些?这可能吗?

谢谢。

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());