Использование LinkMovementMethod и собственного копирования / вставки в Textview - Android

У меня есть TextView с HTML-текстом, и мне нужны собственные ссылки копирования / вставки и кликабельные.

Я использовал следующий код, но когда я использую setMovementMethod(LinkMovementMethod.getInstance()); родная копия / вставка перестает работать.

Если я изменяю setMovementMethod (LinkMovementMethod.getInstance ()) на ArrowKeyMovementMethod, копирование / вставка работает, но ссылки щелчка перестают работать.

Я не разместил весь код, но setMovementMethod используется в методе updateDetail.

Кто-то может мне помочь? С уважением, Луис

Мой код:

textDetail = (TextView) view.findViewById(R.id.text_detail);
textDetail.setTextIsSelectable(true);
textDetail.setCustomSelectionActionModeCallback(new ActionMode.Callback()
 {
   public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
    return false;
   }

  public void onDestroyActionMode(ActionMode mode) {
                             // TODO Auto-generated method stub

  }

  public boolean onCreateActionMode(ActionMode mode, Menu menu) {
                             // TODO Auto-generated method stub
     return true;
  }

  public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
                             // TODO Auto-generated method stub
      return false;
     }
   });

  protected void makeLinkClickable(SpannableStringBuilder strBuilder,
                                                  final URLSpan span) {
                     int start = strBuilder.getSpanStart(span);
                     int end = strBuilder.getSpanEnd(span);
                     int flags = strBuilder.getSpanFlags(span);
                     ClickableSpan clickable = new ClickableSpan() {

                         @Override
                         public void onClick(View view) {
                             } 
                               ////////
                            else {
                               ///////////////
                             }
                         }
                     };
                     strBuilder.setSpan(clickable, start, end, flags);
                     strBuilder.removeSpan(span);
                 }

    protected void setTextViewHTML(TextView text, String html) {
                     CharSequence sequence = Html.fromHtml(html);
                     SpannableStringBuilder strBuilder = new SpannableStringBuilder(sequence);
                     URLSpan[] urls = strBuilder.getSpans(0, sequence.length(),
                             URLSpan.class);
                     for (URLSpan span : urls) {
                         makeLinkClickable(strBuilder, span);
                     }
                     text.setText(strBuilder);
                 }

    public void updateDetail(String msg) {
               setTextViewHTML(textDetail, msg);
               textDetail.setMovementMethod(LinkMovementMethod.getInstance());
             }

0 ответов

Другие вопросы по тегам