i have a 3 cordes comme ceci:comment obtenir un caractère spécial avec le mot et son événement click
"@Username: Deliverd your order",
"YOU got trophy: KING OF COINS",
"There is a package waiting for you to pick up from #surat to #mumbai",
ce que je voulais faire est d'obtenir le nom d'utilisateur et le nom de la ville dans une couleur différente avec son événement click. Ce que je peux obtenir est d'obtenir le nom d'utilisateur en le divisant en caractère ":". mais je ne sais pas comment obtenir le nom de la ville et cliquez sur l'événement des deux.
Dans le nom de la ville, seule la dernière couleur de la ville change, comment changer la couleur du nom de la ville et obtenir son événement click.
ce que j'ai essayé:
if (notifications.getTitle().contains(":"))
{
String[] username = notifications.getTitle().split(":");
String uname = getColoredSpanned(username[0] + ":", "#ff7505");
String txt = getColoredSpanned(username[1], "#000000");
holder.txtTitle.append(Html.fromHtml(uname +" " + txt));
holder.txtTitle.setMovementMethod(LinkMovementMethod.getInstance());
}
else if (notifications.getTitle().contains("#"))
{
Matcher matcher =
Pattern.compile("#\\s(\\w+)").matcher(notifications.getTitle());
i=0;
while (matcher.find())
{
place.add(i, matcher.group(1));
i++;
}
String place1 = getColoredSpanned("#" + place.get(0), "#237BCD");
String place2 = getColoredSpanned("#" + place.get(1), "#237BCD");
places1 = notifications.getTitle().replace("#" + place.get(0), place1);
places1 = notifications.getTitle().replace("#" + place.get(1), place2);
holder.txtTitle.setText(Html.fromHtml(places1));
}
else
{
holder.txtTitle.setText(notifications.getTitle());
}
private String getColoredSpanned(String text, String color) {
String input = "<font color=" + color + ">" + text + "</font>";
return input;
}
et ce que je reçois en sortie:
et ce que j'attendais vraiment:
https://stackoverflow.com/questions/10696986/how-to-set-the-part-of-the-text-view-is-clickable – vlatkozelka
pour savoir comment obtenir des données à partir d'un texte, essayez de formater votre chaîne d'une manière qui est plus facile à analyser plutôt que d'utiliser split(), peut-être un json. – vlatkozelka
j'ai essayé avec votre lien mais avec cela je peux obtenir l'événement de clic mais pas capable de placer la couleur –