android span click-Ereignis

Ok. Das sind meine Probleme.

  1. Muss ich Benutzer von regulären Ausdrücken zum filet alles ausser Buchstaben und dann muss ich schließen Sie die gefundenen Wörter in ein $Wort tag.
    Mit dieser str = str.replaceAll(pattern, "$0");.
    jetzt bin ich filtern alle rechten Elemente (Interpunktion, Nummern, etc.), aber seine Kapselung zu jedem Buchstaben in jedem Wort in ein a-tag, nicht das Wort. so wie ich die regulären Ausdrücke verwenden, um die Gruppierung der Buchstaben zu einem Wort?

aus "(ein tag geöffnet)t(enger)(ein tag offen)h(enger)(ein tag frei)ich(enger)(ein tag offen)s(schließen) (ein tag frei)ich(enger)(ein tag offen)s(schließen) (ein tag offen)w(enger)(ein tag open)r(enger)(ein tag geöffnet)o(enger)(ein tag offen)n(enger)(ein tag offen)g(a-schließen)";

zu :

"(ein tag geöffnet)zu Dieser(in der Nähe) (a-tag)öffnet(eine enge) (ein tag offen)rechts(schließen)";

dann mache ich Sie angeklickt und ich brauchen, um das click-Ereignis und Holen Sie sich die position auf dem Bildschirm, auf die geklickt word-als ich das angeklickt Ereignis zu machen, ein tool-tip, zeigen sich genau unterhalb der angeklickten Wort. danke für Eure Hilfe.

public class MainActivity extends Activity {

public String text = "This is just a sentence to test you. 23 this is another number23!g?";
public TextView tv;

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

    setContentView(R.layout.activity_main);

    text = explode(text);

    tv = (TextView) findViewById(R.id.tv1);

    tv.setLinksClickable(true);
    tv.setMovementMethod(LinkMovementMethod.getInstance());

    Spanned article = Html.fromHtml(text, null, null);
    setHTML(article);
}


public void setHTML(Spanned html) {
      SpannableString message = new SpannableString(html.toString());
      Object[] spans = html.getSpans(0, html.length(), Object.class);
      for (Object span : spans) {
         int start = html.getSpanStart(span);
         int end = html.getSpanEnd(span);
         int flags = html.getSpanFlags(span);
         if (span instanceof URLSpan) {
            URLSpan urlSpan = (URLSpan) span;
            span = new CallbackSpan(urlSpan.getURL());
         }
         message.setSpan(span, start, end, flags);
      }
      tv.setText(message);
   }
    public String explode(String str){  
      String pattern = "([a-zA-Z])";
      str = str.replaceAll(pattern, "<a href=\"$0\">$0</a>");
      return str;
    }

   private final class CallbackSpan extends ClickableSpan {

      private String m_data;
      private String url_main;

      public CallbackSpan(String url) {
         m_data = url.substring(0);
         url_main = url;

      }

      public void onClick(View view) {

          TextView item = (TextView)findViewById(R.id.tv2);
          item.setText(url_main + " was clicked.");
          Log.d("item", url_main);
      }
   }

}

  • ich kann nicht verstehen, klar ist die Frage. Sie haben string und Vorsatz, klicken Sie auf den text im textview.
  • nun zum einen habe ich den string "Dies ist ein mit Nummern 238 66 UND ?? PUNC BL BLA"ich will konvertieren, dass zu "<span>Diese</span> <span>wird</span> <span>ein</span> <span>mit</span> <span>Zahl</span> 238 66 <span>UND</span> ?? <span>PUNC</span> <span>BL</span> <span>BLA</span>"
  • aber ich bin immer das "<span>T</span><span>h</span><span>ich</span><span>s </span><span>ich</span><span>s</span>..... ect" so wie Gruppiere ich die Buchstaben zu einem Wort
  • Sie möchten individuelle worksin textview anklickbar?
  • ja, aber ich habe bereits mit dem code oben. ich kann mich einloggen jedes andere Wort, und all die details, die ich brauche von jedem angeklickt Punkt, aber es wandelt alle Buchstaben, nicht Worte
  • vielen Dank für Ihre schnelle Antwort
  • pls Bearbeiten Ihre Frage. Statt zu schreiben die ganze Geschichte können Sie zeigen, um das eigentliche problem.

InformationsquelleAutor TheMan68 | 2013-03-29
Schreibe einen Kommentar