Android ACTION_SEND

时间:2013-05-16 13:55:58

标签: android email android-intent

我想做一个Android应用程序可以发送电子邮件的动作,并且电子邮件主题和正文已经从android应用程序填充了edittext。 这是我的代码

Intent ii = new Intent(android.content.Intent.ACTION_SEND);
ii.setType("text/plain");
    EditText txtName = (EditText)findViewById(R.id.txtName);
    EditText txtAddress = (EditText)findViewById(R.id.txtAddress);
    EditText txtLatitude = (EditText)findViewById(R.id.txtLatitude);
    EditText txtLongitude = (EditText)findViewById(R.id.txtLongitude);

ii.putExtra(android.content.Intent.EXTRA_SUBJECT, txtName.getText().toString());
ii.putExtra(android.content.Intent.EXTRA_TEXT, txtAddress.getText().toString());
ii.putExtra(android.content.Intent.EXTRA_TEXT, txtLatitude.getText().toString());
ii.putExtra(android.content.Intent.EXTRA_TEXT, txtLongitude.getText().toString());

startActivity(Intent.createChooser(ii, "Share via"));

主题很好,但是正文电子邮件只填充了最后一个内容(txtLongitude)。

请告诉我该怎么做。 格拉茨。

2 个答案:

答案 0 :(得分:1)

  

主题很好,但是正文电子邮件只填充了最后一个内容(txtLongitude)。

这是因为你继续覆盖相同的EXTRA_TEXT额外费用。使用您要发送的电子邮件的完整正文,为putExtra() 拨打EXTRA_TEXT一次

答案 1 :(得分:1)

您需要先从3个EditTexts中创建一个字符串,然后将其设置为额外的字符串。例如:

String body = txtName.getText().toString() + txtLatitude.getText().toString() + txtLongitude.getText().toString()
ii.putExtra(android.content.Intent.EXTRA_TEXT, body);

您可能还想添加一些内容,例如换行符来格式化文本。