Question

Im trying to get various entry variables be sent in an email, but I try to enter more than one "extra text" intents, and It only send the text in the last extra text specified. How do I get all the entry text be in the email? Heres the code:

@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"));         
        }}}
Was it helpful?

Solution

I get a little knowledge about this, can you convert your code like below my example code, may be its

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

}

OTHER TIPS

You are trying to send Extra Text which is one key identifier. Which means it will be replaced everytime when you put extra. so only last extra text will be send. try use different key for every extra text so you will get it. like

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

you can put your own key names as String as i have used above. and et it from that key in getextras.

Concatenate all the text you want to add and then add only one Intent.EXTRA_TEXT. Intent.EXTRA_TEXT is the key of the value in the Bundle that's why you cannot add more than one.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top