0

内部にリンクがあるダイアログを表示する簡単な方法を作成しました。これらのリンクはクリック可能で、すべてうまく機能します。

しかし問題は、すべてのテキストがタッチに反応するようになったため、タッチすると通常のテキストがちらつくことです。

 private void showDialogWithLinks(final String title, final SpannableString content, final String negativeButtonTitle) {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    Linkify.addLinks(content, Linkify.ALL);
    builder.setTitle(title)
            .setMessage(content)
            .setNegativeButton(negativeButtonTitle,
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            dialog.cancel();
                        }
                    });

    AlertDialog alert = builder.create();

    try {
        alert.show();
        ((TextView)alert.findViewById(android.R.id.message)).setMovementMethod(LinkMovementMethod.getInstance());
    } catch (Exception e) {
        finish();
    }
}

誰もこれに対する簡単な解決策を持っていますか?

BR / ヘンリック

4

2 に答える 2

1

try-catch を次のものに置き換えます。

        try {
        alert.show();
        TextView contentView = ((TextView)alert.findViewById(android.R.id.message));
        contentView.setMovementMethod(LinkMovementMethod.getInstance()); // Makes sure the links are opened
        contentView.setTextColor(contentView.getCurrentTextColor()); // This is to remove focus on main text
    } catch (Exception e) {
        finish();
    }

これは、使用されている ColorStateList を削除し、メイン カラーのみを使用するためです。したがって、テキストの色に対する望ましくない動作を削除します。

これが誰かにも役立つことを願っています:)

BR / ヘンリック

于 2013-09-25T11:35:05.233 に答える