【问题标题】:How to send an ArrayList in the body of an e-mail in android?如何在android中的电子邮件正文中发送ArrayList?
【发布时间】:2013-07-26 20:27:46
【问题描述】:

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

如何在正文中显示所有这些?这可能吗?

谢谢。

【问题讨论】:

    标签: android email android-intent


    【解决方案1】:

    在你的 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());
    

    【讨论】:

    • 哇,我的代码中缺少 Arraylist 中的“to string”。并且使用你的代码也可以。谢谢。
    【解决方案2】:

    问题出在这里:

    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”

    上面已经解释过了。

    【讨论】:

    • 我有一个数据库,我的想法是调用数据并添加到“niveis”数组中,因此单击按钮将发送电子邮件,所有数据将显示在正文中。我怎样才能做到这一点?注意:这个“1”,“2”只是例子,实际上,我喜欢这样的位置: String values = javaClass.Method().get(i).getTag(); niveis.add(values);
    猜你喜欢
    • 1970-01-01
    • 2017-01-16
    • 2012-09-20
    • 1970-01-01
    • 2014-02-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-21
    • 2014-02-23
    相关资源
    最近更新 更多