Как сделать адрес электронной почты доступным?

У меня есть текст в моем приложении, в котором говорится, что если вам нужна дополнительная помощь, напишите нам, и вот адрес электронной почты, бла, бла.

Но я хочу, чтобы они могли нажимать на ссылку электронной почты и открывать свой почтовый клиент. Это возможно? Или это плохая практика?

Если это разумная практика, как это можно сделать?

Solutions Collecting From Web of "Как сделать адрес электронной почты доступным?"

Это очень разумный запрос, и класс Linkify превратит каждый адрес электронной почты в соответствующую ссылку для вас. Просто добавьте атрибут autoLink в ваш XML:

 <TextView ... android:autoLink="email" /> 

Вы можете сделать свой текст нажав, используя setOnClickListener в тексте

 textView.setOnClickListener(new View.OnClickListener()); 

Вы можете открыть почтовый клиент, создав новый Intent с ACTION_SEND. Settype, адрес электронной почты и тему:

 Intent emailintent = new Intent(android.content.Intent.ACTION_SEND); emailintent.setType("plain/text"); emailintent.putExtra(android.content.Intent.EXTRA_EMAIL,new String[] {"mailk@gmail.com" }); emailintent.putExtra(android.content.Intent.EXTRA_SUBJECT, ""); emailintent.putExtra(android.content.Intent.EXTRA_TEXT,""); startActivity(Intent.createChooser(emailintent, "Send mail...")); 

Вам нужно запустить намерение в свой onClickListener :

 Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); // send email as plain text intent.putExtra(Intent.EXTRA_EMAIL, new String[] { "some@email.address" }); intent.putExtra(Intent.EXTRA_SUBJECT, "subject"); intent.putExtra(Intent.EXTRA_TEXT, "mail body"); startActivity(Intent.createChooser(intent, "")); 

Принятый ответ может работать для электронных писем, но если вы хотите обнаружить различные шаблоны, такие как электронные письма, контактные номера, веб-ссылку и установить отдельные реализации кликов для этих шаблонов, я предлагаю вам использовать CustomClickableEmailPhoneTextview

Введите описание изображения здесь

Пример кода для использования библиотеки.

 CustomPartialyClickableTextview customPartialyClickableTextview= (CustomPartialyClickableTextview) findViewById(R.id.textViewCustom); /** * Create Objects For Click Patterns */ ClickPattern email=new ClickPattern(); ClickPattern phone=new ClickPattern(); ClickPattern weblink=new ClickPattern(); /** * set Functionality for what will happen on click of that pattern * In this example pattern is email */ email.setOnClickListener(new ClickPattern.OnClickListener() { @Override public void onClick() { Toast.makeText(MainActivity.this,"email clicked",Toast.LENGTH_LONG).show(); } }); /** * set Functionality for what will happen on click of that pattern * In this example pattern is phone */ phone.setOnClickListener(new ClickPattern.OnClickListener() { @Override public void onClick() { Toast.makeText(MainActivity.this,"phone clicked",Toast.LENGTH_LONG).show(); } }); /** * set Functionality for what will happen on click of that pattern * In this example pattern is weblink */ weblink.setOnClickListener(new ClickPattern.OnClickListener() { @Override public void onClick() { Toast.makeText(MainActivity.this,"website clicked",Toast.LENGTH_LONG).show(); } }); /** * set respective regex string to be used to identify patter */ email.setRegex("\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[AZ]{2,4}\\b"); // regex for email phone.setRegex("[1-9][0-9]{9,14}"); // regex for phone number weblink.setRegex("^(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]"); // regex for weblink /** * add click pattern to the custom textview - first parameter is tag for reference second parameter is ClickPattern object */ customPartialyClickableTextview.addClickPattern("email",email); customPartialyClickableTextview.addClickPattern("phone",phone); customPartialyClickableTextview.addClickPattern("weblink",weblink);