对话框中的Android Linkify文本

use*_*732 2 java email url android linkify

嗨,我已经浏览了所有可以找到的不同的linkify教程,但是这里没有一个是我当前的代码:

final SpannableString s = new SpannableString("Please send any questions to email@fake.com");
            Linkify.addLinks(s, Linkify.EMAIL_ADDRESSES);
            AlertDialog.Builder builder = new AlertDialog.Builder(Activity.this);
            builder.setTitle("Warning!")
                   .setMessage(s)
                   .setCancelable(false)
                   .setPositiveButton("Accept", new DialogInterface.OnClickListener() {
                       public void onClick(DialogInterface dialog, int id) {

                       }
                   })
                   .setNegativeButton("Decline", new DialogInterface.OnClickListener() {
                       public void onClick(DialogInterface dialog, int id) {
                            Activity.this.finish();
                       }
                   }).show();
Run Code Online (Sandbox Code Playgroud)

但是,当我实际运行应用程序时,它会显示文本,如蓝色和带下划线,就好像它已链接但选择文本不会提示打开电子邮件应用程序.我也试过网址,浏览器不起作用是否有缺少的东西?

谢谢你的帮助.

ada*_*ost 12

为了clickable在对话框上有一个区域,你需要使用TextView(View)并autoLink=all在布局文件中设置或setAutoLinkMask()从代码中调用方法.

final SpannableString s = new SpannableString("Please send any questions to email@fake.com");

//added a TextView       
final TextView tx1=new TextView(this);
tx1.setText(s);
tx1.setAutoLinkMask(RESULT_OK);
tx1.setMovementMethod(LinkMovementMethod.getInstance());

Linkify.addLinks(s, Linkify.EMAIL_ADDRESSES);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Warning!")
  .setCancelable(false)
  .setPositiveButton("Accept", new DialogInterface.OnClickListener() {
      public void onClick(DialogInterface dialog, int id) {
       }
      })
  .setNegativeButton("Decline", new DialogInterface.OnClickListener() {
      public void onClick(DialogInterface dialog, int id) {
               finish();
      }
     })
  .setView(tx1)
  .show();
Run Code Online (Sandbox Code Playgroud)