从文本视图上的超链接打开对话框-Android

从文本视图上的超链接打开对话框-Android,android,hyperlink,dialog,textview,Android,Hyperlink,Dialog,Textview,有一种方法可以在文本视图中的某些单词中添加链接,当我单击该单词时,一个对话框打开 示例:文本视图-->单词A-单词B-单词C 当我点击Word A时,显示一个带有一些选项的对话框,当我点击Word C时,打开另一个带有其他选项的对话框 我检查了这个链接,但我的问题不适合 任何人都可以提供帮助?假设给您一个“这是一个测试”字符串,并且您希望显示子字符串“此”的对话框a和子字符串“测试”的对话框B。考虑以下方法: private static void applySpan(SpannableStr

有一种方法可以在文本视图中的某些单词中添加链接,当我单击该单词时,一个对话框打开

示例:文本视图-->单词A-单词B-单词C

当我点击Word A时,显示一个带有一些选项的对话框,当我点击Word C时,打开另一个带有其他选项的对话框

我检查了这个链接,但我的问题不适合


任何人都可以提供帮助?

假设给您一个
“这是一个测试”
字符串,并且您希望显示子字符串
“此”
的对话框a和子字符串
“测试”
的对话框B。考虑以下方法:

private static void applySpan(SpannableString spannable, String target, ClickableSpan span) {
  final String spannableString = spannable.toString();
  final int start = spannableString.indexOf(target);
  final int end = start + target.length();
  spannable.setSpan(span, start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
该方法采用
span启用
,搜索其中出现的第一个
目标
,并对其应用
span
。要在
文本视图中显示
spannable
,可以从
活动中执行以下操作:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    final SpannableString spannable = SpannableString.valueOf(“this is a test”);
    applySpan(spannable, "this", new ClickableSpan() {
        @Override
        public void onClick(View widget) {
            // show dialog A
        }
    });
    applySpan(spannable, "test", new ClickableSpan() {
        @Override
        public void onClick(View widget) {
            // show dialog B
        }
    });

    final TextView textView = new TextView(this);
    textView.setText(spannableString);
    textView.setMovementMethod(LinkMovementMethod.getInstance());

    setContentView(textView);
}

这只是一个粗略的例子,但希望能展示一种解决问题的方法。

Ty Curtis…我会试试看