不止一个Intent ExtraText?

时间:2013-07-27 06:49:27

标签: android eclipse android-intent text extra

我试图在电子邮件中发送各种条目变量,但我尝试输入多个“额外文本”意图,并且它只发送指定的最后一个额外文本中的文本。如何获取电子邮件中的所有条目文本?下面是代码:

@Override
public void onClick(View v) {
    if (v.getId()==findViewById(R.id.enviar).getId())
    {
        Intent intentEmail = new Intent(Intent.ACTION_SEND, Uri.fromParts("mailto", "villasantdesign@gmail.com", null));
        intentEmail.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"villasantdesign@gmail.com"});
        intentEmail.putExtra(Intent.EXTRA_SUBJECT, "Consulta Técnica");
        intentEmail.putExtra(Intent.EXTRA_TEXT, etlugar.getText()); 
        intentEmail.putExtra(Intent.EXTRA_TEXT, etfecha.getText());
        intentEmail.putExtra(Intent.EXTRA_TEXT, etcable.getText());
        intentEmail.putExtra(Intent.EXTRA_TEXT, etqe.getText());
        intentEmail.putExtra(Intent.EXTRA_TEXT, etantena.getText());
        intentEmail.putExtra(Intent.EXTRA_TEXT, etampli.getText());
        intentEmail.putExtra(Intent.EXTRA_TEXT, etmodulo.getText());
        intentEmail.setType("message/rfc822");
        startActivity(Intent.createChooser(intentEmail, "Enviar"));         
        }}}

3 个答案:

答案 0 :(得分:5)

我对此有一点了解,你可以转换你的代码,如下面我的示例代码,可能是它的

public void onClick(View v) {

     String message = "";
     message += "\n" + etlugar.getText()); 
     message += "\n" + etfecha.getText());
     message += "\n" + etcable.getText()
     etc....


     Intent intentEmail = new Intent(Intent.ACTION_SEND, Uri.fromParts("mailto", "villasantdesign@gmail.com", null));
     intentEmail.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"villasantdesign@gmail.com"});
     intentEmail.putExtra(Intent.EXTRA_SUBJECT, "Consulta Técnica");
     intentEmail.putExtra(Intent.EXTRA_TEXT, message ); 
     intentEmail.setType("message/rfc822");
     startActivity(Intent.createChooser(intentEmail, "Enviar"));   

}

答案 1 :(得分:3)

您正在尝试发送Extra Text,这是一个关键标识符。这意味着每次额外放置时都会更换。所以只会发送最后一个额外的文字。尝试为每个额外的文本使用不同的键,这样你就可以得到它。像

intentEmail.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"villasantdesign@gmail.com"});
        intentEmail.putExtra(Intent.EXTRA_SUBJECT, "Consulta Técnica");
        intentEmail.putExtra("Extra Text 1", etlugar.getText()); 
        intentEmail.putExtra("Extra Text 2", etfecha.getText());
        intentEmail.putExtra("Extra Text 3", etcable.getText());
        intentEmail.putExtra("Extra Text 4", etqe.getText());
        intentEmail.putExtra("Extra Text 5", etantena.getText());
        intentEmail.putExtra("Extra Text 6", etampli.getText());
        intentEmail.putExtra("Extra Text 7", etmodulo.getText());

您可以将自己的键名称作为我在上面使用过的字符串。以及getextras中的那个键。

答案 2 :(得分:0)

连接要添加的所有文本,然后只添加一个Intent.EXTRA_TEXTIntent.EXTRA_TEXT是Bundle中值的关键,这就是为什么你不能添加多个。