Там вы две ошибки в коде:.
# 1
Вам нужно получить текст из EditText
и преобразовать его в String
, а затем положить это письмо Intent
внутри onClickListener
вашего Button
:
Попробуйте это:
EditText yourEditText = (EditText) findViewById(R.id.yourEditTextId);
Button yourButton = (Button) findViewById(R.id. yourButton);
yourButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String enteredText = yourEditText.getText().toString();
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_EMAIL,new String[]{"[email protected]"}); //2nd mistake is here.
intent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
intent.putExtra(Intent.EXTRA_TEXT, enteredText);
startActivity(Intent.createChooser(intent, "Send Email"));
}
});
второй ошибкой является здесь:
intent.putExtra(Intent.EXTRA_EMAIL, "[email protected]");
электронная почта Намерение ожидает String array
(как описано here), но вы предоставляете String
, поэтому используйте:
intent.putExtra(Intent.EXTRA_EMAIL,new String[]{"[email protected]"});
UPDATE
Так как вы хотите, чтобы автоматически открыть приложение Gmail для отправки электронной почты , попробуйте следующее:
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setClassName("com.google.android.gm", "com.google.android.gm.ComposeActivityGmail");
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_EMAIL,new String[]{"[email protected]"});
intent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
intent.putExtra(Intent.EXTRA_TEXT, "hi");
startActivity(Intent.createChooser(intent, "Send Email"));
т.е. вы, чтобы добавить дополнительную строку, чтобы установить имя целевого класса в ComposeActivityGmail
:
intent.setClassName("com.google.android.gm", "com.google.android.gm.ComposeActivityGmail");
Теперь мое приложение просто падает при запуске, как это исправить? –
Какая ошибка? Пожалуйста, поделитесь stacktrace –
1:10:10 PM PSI и индекс не совпадают: PSI и индекс не соответствуют –