Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何创建用作链接的TextView_Android_Hyperlink_Textview - Fatal编程技术网

Android 如何创建用作链接的TextView

Android 如何创建用作链接的TextView,android,hyperlink,textview,Android,Hyperlink,Textview,我有一个文本视图,位置如下: 例如,“加州山景城” 我想要实现的是创建这个文本来充当链接-颜色、下划线、焦点等 此链接不需要指向任何地方-周边视图已附加onClick listener,可激发google maps意图。类似的功能应该可以工作 TextView location = (TextView) findViewById(R.id.location); location.setMovementMethod(LinkMovementMethod.getInstance());

我有一个
文本视图
,位置如下:

例如,“加州山景城”

我想要实现的是创建这个文本来充当链接-颜色、下划线、焦点等


此链接不需要指向任何地方-周边视图已附加onClick listener,可激发google maps意图。

类似的功能应该可以工作

  TextView location = (TextView) findViewById(R.id.location);
  location.setMovementMethod(LinkMovementMethod.getInstance());
  Spannable spans = (Spannable) location.getText();
  ClickableSpan clickSpan = new ClickableSpan() {

     @Override
     public void onClick(View widget)
     {
        //put whatever you like here, below is an example
        AlertDialog.Builder builder = new Builder(MainActivity.this);
        builder.setTitle("Location clicked");
        AlertDialog dialog = builder.create();            
        dialog.show();
     }
  };
  spans.setSpan(clickSpan, 0, spans.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

ApiDemos中有一个例子可以解决您的问题。查看
com.example.android.api.text.Link
class,它可能会有所帮助。以下是守则的一部分:

TextView t3 = (TextView) findViewById(R.id.text3);
t3.setText(
        Html.fromHtml(
            "<b>text3:</b>  Text with a " +
            "<a href=\"http://www.google.com\">link</a> " +
            "created in the Java source code using HTML."));
t3.setMovementMethod(LinkMovementMethod.getInstance());
TextView t3=(TextView)findViewById(R.id.text3);
t3.setText(
Html.fromHtml(
“text3:带字符的文本”+
" " +
“使用HTML在Java源代码中创建。”);
t3.setMovementMethod(LinkMovementMethod.getInstance());
tv.setMovementMethod(LinkMovementMethod.getInstance())


如果您没有获得“单击回调”

,您可以将
Spannable
类与
mTextView.scollTo()
一起使用来创建内部链接

您的答案运行正常。但它将整个文本显示为链接。如何仅使链接部分可单击,而不是全文。@IDRODEXPLORER在最后一行,将0,spans.length()更改为要单击的字符串范围。很好。谢谢。