所以,我希望这可以通过电子邮件将用户的输入发送给我,但我不希望用户必须选择电子邮件应用程序,并手动输入“到”地址。不知道该怎么做。
目前,它会保存所有输入,但它会让用户选择一个电子邮件客户端,而不会预先填充“收件人”字段。
package com.rappe.refillsapp;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Button;
import android.content.Intent;
public class RefillActivity extends Activity {
public String name;
public String birthday;
public String prescriptionOptions;
public String notes;
public String number;
public String email;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.refill_activity_main);
Button submit = (Button) findViewById(R.id.ButtonSendRefillRequest);
submit.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
sendRefillRequest();
String to = email;
String subject = name;
String message = (birthday+"\n"+number+"\n"+prescriptionOptions+"\n"+notes);
Intent mEmail = new Intent(Intent.ACTION_SEND);
mEmail.putExtra(Intent.EXTRA_EMAIL, to);
mEmail.putExtra(Intent.EXTRA_SUBJECT, subject);
mEmail.putExtra(Intent.EXTRA_TEXT, message);
//lets user choose email client/app
mEmail.setType("message/rfc822");
startActivity(Intent.createChooser(mEmail, "Choose an email client to send your request for a refill!"));
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.refill, menu);
return true;
}
public void sendRefillRequest(){
final EditText nameField = (EditText) findViewById(R.id.EditTextName);
name = nameField.getText().toString();
final EditText birthdayField = (EditText) findViewById(R.id.EditTextBirthday);
birthday = birthdayField.getText().toString();
final EditText numberField = (EditText) findViewById(R.id.EditTextPrescriptionNumber);
number = numberField.getText().toString();
final Spinner prescriptionOptions = (Spinner) findViewById(R.id.SpinnerPrescriptionOptions);
this.prescriptionOptions = prescriptionOptions.getSelectedItem().toString();
final EditText notesField = (EditText) findViewById(R.id.EditTextSpecialNotes);
notes = notesField.getText().toString();
}
}
答案 0 :(得分:1)
编辑......这个Question提供了这样做的方法,但是一些受人尊敬的海报指出这些技术没有记录......
我们可以使用Intent发送电子邮件:
Intent sendIntent = new Intent(Intent.ACTION_SEND);
String subject = "My subject";
String body = "My body text";
sendIntent.setType("message/rfc822");
sendIntent.putExtra(Intent.EXTRA_EMAIL, new String[] { "recipient.address@xyz.com" });
sendIntent.putExtra(Intent.EXTRA_TEXT, body);
sendIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new File("/file/to/attach")));
startActivity(Intent.createChooser(sendIntent, "Please send email"));
请注意,我我在此处调用Chooser
。