2014-10-21 2 views
0

Я использую android:autoLink="web" в своем TextViews для преобразования URL-адресов в интерактивные ссылки. Это отлично работает. Поскольку ссылки создаются пользователем, я хочу заранее спросить у пользователя диалог, действительно ли он хочет, чтобы ссылка на openthis.Показать диалог перед открытием autoLink в TextView

Я ничего не нашел, есть способ перехватить этот щелчок и показать диалоговое окно перед тем, как перенаправить его к типичному намерению ACTION_VIEW?

ответ

0

Попробуйте добавить в свойствах TextView как:

<TextView 
    android:text="http://www.google.com" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:autoLink="web" 
    android:onClick="onUrlClick" 
    android:linksClickable="false" 
    android:clickable="true" 
    /> 

, а затем переопределить метод OnClick как:

public void onUrlClick(final View view) { 
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
    builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int id) { 
      TextView myTextView = (TextView)view; 
      String myUrl = String.valueOf(myTextView.getText()); 
      Intent browse = new Intent(Intent.ACTION_VIEW , Uri.parse(myUrl)); 
      startActivity(browse); 
     } 
    }); 
    builder.setNegativeButton("No", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int id) { 
     } 
    }); 
    AlertDialog dialog = builder.create(); 
    dialog.show(); 
} 

Он работал для меня. Это только пример, для хорошей практики вам следует отделить создание от метода onClick.

+1

Но мой TextView может содержать несколько URL-адресов. Будет ли это работать? – Mahoni

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