How to create TextView that will act as a link

后端 未结 4 709
长情又很酷
长情又很酷 2020-12-30 17:41

I have a Textview with location:

eg. \"Mountain View, CA\"

What I want to achieve is to create this text to act like a Link - color,underline, f

相关标签:
4条回答
  • 2020-12-30 18:18

    tv.setMovementMethod(LinkMovementMethod.getInstance());

    if you are not getting click callback

    0 讨论(0)
  • 2020-12-30 18:32

    Something like this should work.

      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);
    
    0 讨论(0)
  • 2020-12-30 18:33

    you can use Spannable class with mTextView.scollTo() to create internal link

    0 讨论(0)
  • 2020-12-30 18:36

    there is a example in ApiDemos which can solve your problem. Check out com.example.android.apis.text.Link class, it may help. Following is part of the code:

    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());
    
    0 讨论(0)
提交回复
热议问题