È possibile fare clic su come impostare la parte della vista di testo


214

Ho il testo " Android è uno stack di software ". In questo testo voglio impostare il testo " stack " è cliccabile. nel senso che se fai clic su di esso verrà reindirizzato a una nuova attività (non nel browser).

Ci ho provato ma non ci sto riuscendo.


12
"Ho provato ma non sto ottenendo" Vorrei sapere cosa hai provato e dove hai fallito
Rashmi.B

Risposte:


536

android.text.style.ClickableSpan può risolvere il tuo problema.

SpannableString ss = new SpannableString("Android is a Software stack");
ClickableSpan clickableSpan = new ClickableSpan() {
    @Override
    public void onClick(View textView) {
        startActivity(new Intent(MyActivity.this, NextActivity.class));
    }
    @Override
    public void updateDrawState(TextPaint ds) {
        super.updateDrawState(ds);
        ds.setUnderlineText(false);
    }
};
ss.setSpan(clickableSpan, 22, 27, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

TextView textView = (TextView) findViewById(R.id.hello);
textView.setText(ss);
textView.setMovementMethod(LinkMovementMethod.getInstance());
textView.setHighlightColor(Color.TRANSPARENT);

In XML:

<TextView 
  ...
  android:textColorLink="@drawable/your_selector"
/>

2
È possibile impostare più oggetti ClickableSpan in una visualizzazione di testo?
Jonathan,

4
Sì, puoi impostare più intervalli selezionabili su stringa espandibile.
degratnik,

15
Per far cambiare il colore in blu, è possibile aggiungere: ForegroundColorSpan fcs = new ForegroundColorSpan(Color.BLUE); ss.setSpan(fcs, 22, 27, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
xemacobra,

4
Questo è successo nel mio caso, per cambiare il colore dal blu ad un altro. Situato ForegroundColorSpannel setSpan dopo aver impostato l'intervallo cliccabile. Posizionando il primo piano prima dell'intervallo selezionabile, il nuovo colore non verrà riflesso.
Shubham A.

1
grazie per questa linea stextView.setMovementMethod (LinkMovementMethod.getInstance ()); textView.setHighlightColor (Color.TRANSPARENT);
Sasuke Uchiha,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.