Кликабельные ссылки в диалоге - PullRequest
1 голос
/ 13 февраля 2012

В диалоге, описывающем мой журнал изменений, я хотел бы иметь несколько ссылок на наши страницы в Twitter и Facebook.Поскольку я не хочу, чтобы в тексте были пустые URL, я использую Html.fromHtml(..) и стандартные ссылки в стиле html (href).Тем не менее, я не могу сделать ссылки кликабельными, независимо от того, как я делаю диалог (через AlertDialog.Builder или диалог с настраиваемым представлением).Я также установил linksClickable=true в текстовом обзоре, но не повезло.Если бы кто-нибудь мог мне помочь, это было бы здорово!

change_log_dialog.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linlay2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<TextView
    android:id="@+id/dialog_text_view"
    android:layout_width="match_parent"
    android:layout_height="0dip"
    android:layout_margin="@dimen/view_padding"
    android:layout_weight="1"
    android:linksClickable="true"
    android:text="@string/gen_placeholder"
    android:textAppearance="?android:attr/textAppearanceMedium" >
</TextView>

<LinearLayout
    android:id="@+id/verticallayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:divider="?android:attr/dividerHorizontal"
    android:dividerPadding="0dip"
    android:orientation="vertical"
    android:showDividers="beginning" >

    <Button
        android:id="@+id/help_close"
        style="?android:attr/buttonBarButtonStyle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/help_close" />

</LinearLayout>

текущий метод вызова диалога:

Dialog dialog = new Dialog(this);
dialog.setTitle(R.string.changetitle);
View v = getLayoutInflater().inflate(R.layout.change_log_dialog, null);
((TextView) v.findViewById(R.id.dialog_text_view)).setText(getRawAsset(R.raw.change));
dialog.setContentView(v);
return dialog;

с getRawAsset (..):

public Spanned getRawAsset(int id) {

    InputStream mStream = getResources().openRawResource(id);
    InputStreamReader mRead = new InputStreamReader(mStream);
    BufferedReader mReader = new BufferedReader(mRead);
    StringBuilder returner = new StringBuilder();
    String line = "";
    try {
        while ((line = mReader.readLine()) != null) {

            returner.append(line);

        }

        return Html.fromHtml(returner.toString());
    } catch (IOException e) { 
        e.printStackTrace();
    }
    return null;

}

1 Ответ

2 голосов
/ 13 февраля 2012

Возможно, вы предпочтете использовать Linkify вместо Html.fromHtml(...). Linkify вместе с Linkify.TransformFilter должны иметь возможность преобразовывать ссылки во что-то более удобное для пользователя.

...