2016-01-28 2 views
1

У меня есть большой string, и мне нужно добавить 2 гиперссылки. Я сделал это, но он не доступен для кликов.Гиперссылка в ресурсе строки в AlertDialog

Строка:

<string name="freeasa"><![CDATA[<b><font color=#cc0022>text<font color=#2266bb> text </font></b> <br> text <a href=\'http://google.com\'>navigate to google.com</a><br><b><font color=#2266bb> text</font><font color=#cc0022> text </font></b><br> text <a href=\'http://yahoo.com\'> yahoo link<\a> ]]></string> 

AlertDialog:

 final AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); 
     builder.setTitle(getResources().getString(R.string.add_info)); 
     builder.setMessage(Html.fromHtml(getResources().getString(R.string.freeasa))) 
       .setPositiveButton("OK", new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialogInterface, int i) { 
         dialogInterface.dismiss(); 
        } 
       }).show(); 

Есть гиперссылок, но они не являются интерактивными. Как это исправить? enter image description here

ответ

2

попробовать диалог пользовательских предупреждений ниже пути

enter image description here

LayoutInflater li = LayoutInflater.from(MainActivity.this); 
     View promptsView = li.inflate(R.layout.prompts, null); 

     final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); 
     builder.setView(promptsView); 
     final TextView userInput = (TextView) promptsView 
       .findViewById(R.id.textView); 
     userInput.setMovementMethod(LinkMovementMethod.getInstance()); 
     userInput.setText(Html.fromHtml(getResources().getString(R.string.about_body))); 
     builder.setTitle(getResources().getString(R.string.app_name)); 
     // builder.setMessage(Html.fromHtml(getResources().getString(R.string.about_body))) 
     builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialogInterface, int i) { 
       dialogInterface.dismiss(); 
      } 
     }).show(); 

prompts.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:padding="10dip"> 

    <TextView 
     android:id="@+id/textView" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:clickable="true" 
     android:text="Medium Text" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 
</LinearLayout> 

убедитесь, что ваша строка правильно и ссылки работают

0

Используйте этот установить геперлин K к TextView:

TextView website = new TextView(this); 
website.setText("http://www.google.com"); 
Linkify.addLinks(website, Linkify.ALL); 

Надежда помогает

Смежные вопросы