2012-02-12 27 views
1

私の変更履歴を説明するダイアログで、私たちのTwitterページやFacebookページへのリンクがいくつかあります。私がテキストに裸のURLを持つことを望んでいないので、私はHtml.fromHtml(..)と標準的なHTMLスタイルのリンク(href)を使用しています。しかし、どのようにダイアログを(AlertDialog.Builderまたはカスタムビューでダイアログを使用して)行うかにかかわらず、リンクをクリック可能にすることはできません。私もlinksClickable=trueをtextviewに設定しましたが、運はありません。誰かが私を助けることができれば、それは素晴らしいだろう! getRawAsset(..)とダイアログ内のクリック可能なリンク

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; 

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> 

ダイアログを呼び出すための現在の方法

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; 

} 

答えて

2

おそらく、あなたはラースう代わりにHtml.fromHtml(...)の代わりにLinkifyを使用してください。 Linkifyは、Linkify.TransformFilterと一緒に、リンクをユーザーフレンドリーなものに変換できるはずです。

+0

しかし、それは裸のURLでのみ動作しますか?私は通常のテキスト(「Facebookのページを訪ねてください」など)にリンクしたいのですが、少し醜いのでユーザーには私たちのウェブサイトの全URLを見せたくありません –

+0

@Espiandev私は自分の答えを編集しました。 –

+0

完璧に動作します、ありがとう! –

関連する問題