2012-07-10 5 views
0

J'ai un TextView avec deux couleurs différentes. Ici, si je clique sur mini il devrait rediriger vers une activité, si je clique sur la redirection de métro vers une autre activité. Comment puis-je atteindre cet objectif?onclicklistener textView en android

TextView t = (TextView)v.findViewById(R.id.text); 
String text = "<font color=#000000><b>"+"mini"+"</b></font><font color=#000000> added </font><font color=#1569C7>"+"Metro"+"</font><font color=#000000> as a favourite.</font>"; 
t.setText(Html.fromHtml(text)); 
+0

Il n'y a pas de solution simple à cela. Si vous avez choisi d'utiliser TextView au lieu de WebView, vous devez commencer par déterminer les coordonnées du point de clic (onClickListener ne peut pas aider ici - vous devez utiliser les événements Touch) et déterminer la position du texte dans le affichage. –

Répondre

0

Sur votre écoute de clic textview vous devez trouver le texte et vous pouvez utiliser la propriété getText comparer simplement le texte et ouvre l'activité selon le texte.

+1

Cela ne va pas aider. Il veut différencier les clics sur différentes parties du texte. –

+0

ohk ... je pensais à la fois il n'y a qu'un seul texte – user

0

Dans un auditeur onclick Je vais essayer ceci:

if (text.equalsIgnoreCase("mini")) { 
    // call your next activity here 
} else if(text.equalsIgnoreCase("metro")) { 
    // call your next activity here 
} 

Ne pas oublier de mettre android:clickable="true" dans votre fichier XML du TextView.

+2

Cela ne va pas aider. Veuillez lire attentivement la question. L'OP veut différencier les clics sur différentes parties de la vue de texte. –

+0

désolé pour le mauvais ans .... –

2

Ce que vous pouvez faire est de créer une classe personnalisée qui étend ClickableSpan et gérer votre texte cliquable. J'avais répondu au même here.

+1

+1 pour une bonne suggestion !!! :) –

0

Je pense que vous pouvez utiliser deux textview en linéaire avec deux couleurs et du texte différents. Ensuite, vous pouvez implémenter onClicklistener() pour deux affichage de texte. Vous obtiendrez ce que vous voulez et il ressemble à ce que vous attendez.

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
<TextView 
    android:id="@+id/text1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_below="@+id/settings" 
    android:layout_marginTop = "10dip" 
    android:padding="3dip" 
    android:text="@string/txt1" 
    android:textColor="#000000" 
    android:textSize="25sp" 
    android:textStyle="bold" /> 

<TextView 
    android:id="@+id/text2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_below="@+id/settings" 
    android:layout_marginTop = "10dip" 
    android:padding="3dip" 
    android:text="@string/txt2" 
    android:textColor="#1569C7" 
    android:textSize="25sp" 
    android:textStyle="bold" /> 

</LinearLayout> 

Hope it helps

0

This répond à ce que vous voulez, mais gardez à l'esprit qu'il est très difficile d'obtenir la facilité d'utilisation d'un tel droit composant. Il est très probable que quelqu'un aura du mal à cliquer sur les liens, en particulier si le texte est sur plusieurs lignes et que les mots liés sont proches les uns des autres verticalement.

Je déconseille une telle solution.

Questions connexes