从文本视图上的超链接打开对话框-Android
有一种方法可以在文本视图中的某些单词中添加链接,当我单击该单词时,一个对话框打开 示例:文本视图-->单词A-单词B-单词C 当我点击Word A时,显示一个带有一些选项的对话框,当我点击Word C时,打开另一个带有其他选项的对话框 我检查了这个链接,但我的问题不适合从文本视图上的超链接打开对话框-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。考虑以下方法:
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…我会试试看