J'ai un ListView avec un adaptateur de liste personnalisé (qui étend BaseAdapter). Ma liste des éléments de la vue sont gonflés de cette disposition:Android SpannableString sur l'élément ListView
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="center_vertical"
>
<TextView
android:id="@+id/txtOne"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
/>
<TextView
android:id="@+id/txtTwo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
</LinearLayout>
A méthode getView les éléments de la vue sont créés et renseignés:
if (convertView == null) {
convertView = inflater.inflate(R.layout.teste, parent, false);
}
((TextView) convertView.findViewById(R.id.txtOne)).setText("Some text");
final SpannableString ss = new SpannableString("Another text");
ss.setSpan(new ClickableSpan() {
@Override
public void onClick(final View widget) {
startActivity(new Intent(widget.getContext(), AnotherActivity.class));
}
}, 0, ss.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
((TextView) convertView.findViewById(R.id.txtTwo)).setText(ss);
C'est montrant ma chaîne spannable sur le point de vue de l'article, mais je ne peux pas toucher dessus. Je peux seulement toucher la vue entière de l'article.
Je souhaite démarrer une autre activité lorsque l'utilisateur touche une chaîne de caractère, mais je souhaite également que l'ensemble de la vue de l'élément soit tactile.
Qu'est-ce qui me manque?
Est-ce optimal si vous avez alloué une nouvelle SpannableString chaque fois que getView() est appelé comme ça? –