2017-12-27 4 views
1

ich die Funktionalität von Tagging eines Benutzers repliziert werden sollen, während sein Name in Bearbeiten von Text nach der Eingabe von ‚@‘ eingegeben wirdTag ein Benutzer, wenn Sie einen Benutzernamen in einem EditText Eingabe

entnehmen Sie bitte der beigefügten Bild, was genau will ich do

enter image description here

Hier sally Jones markiert chris Remkes während seinen Namen von einem edit Text eingeben.

Jeder Vorschlag, wie dies zu tun ist, wenn dieser Name angeklickt wird, kann ich die Benutzerdetails anzeigen.

Antwort

0

können Sie einen ClickableSpan verwenden:

SpannableString textString = new SpannableString("Great video @ChrisRemkes I'm making a similar one but I think it could do with some editing like your one!!!"); 
ClickableSpan clickableSpan = new ClickableSpan() { 
    @Override 
    public void onClick(View textView) { 
     Toast.makeText(getApplicationContext(), "The text '@ChrisRemkes' has been clicked. Do something.", 
         Toast.LENGTH_SHORT).show(); 
    } 

    @Override 
    public void updateDrawState(TextPaint ds) { 
     super.updateDrawState(ds); 
     // NOTE: here's where you can set the styling give UI feedback that this is text that can be clicked on. 
     ds.setColor(getResources().getColor(android.R.color.holo_blue)); 
    } 
}; 
// NOTE: you will need to setup getStartPositionOfTag(textString) and getEndPositionOfTag(textString) to pattern match on the textString to find the start position and end position of @ChrisRemkes 
textString.setSpan(clickableSpan, getStartPositionOfTag(textString), getEndPositionOfTag(textString), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 
textView.setText(textString); 
textView.setMovementMethod(LinkMovementMethod.getInstance()); 
Verwandte Themen