Ich erstelle eine kleine Android-App. Ich möchte einen Text in einer Textansicht mit mehreren Teilen zum Klicken anzeigen. (Jeder sollte eine andere Nachricht anzeigen)Android Mehrere anklickbare Zeichenfolgen in Textansicht
Endlich habe ich herausgefunden, wie man mehrere Spannen in einer Textansicht anzeigen kann, aber leider funktionieren die onClick Methoden nicht. Es passiert einfach nichts, nicht einmal eine Log-Zeile.
Ich habe so etwas wie dies:
SpannableStringBuilder ssb=new SpannableStringBuilder();
ssb.append("first second")
ssb.setSpan(new ClickableSpan() {
@Override
public void onClick(View v) {
//Eredmeny2.this is just the context, name of the whole class
Toast.makeText(Eredmeny2.this, "first", Toast.LENGTH_LONG).show();
}
}, 1, 3, 0);
ssb.setSpan(new ClickableSpan() {
@Override
public void onClick(View v) {
Toast.makeText(Eredmeny2.this, "second", Toast.LENGTH_LONG).show();
}
}, 7, 10, 0);
TextView t1=new TextView(this);
t1.setText(ssb);
...
Der Text ist in Ordnung unterstrichen, aber es passiert nichts, wenn ich auf sie klicken. Es ist ein Teil eines TableView, obwohl ich denke, dass dies nicht relevant ist. Hast du irgendwelche Ideen, warum es nichts macht? Was vermisse ich? Oder sollte ich es auf eine völlig andere Art und Weise tun?
Vielen Dank im Voraus.
der Layout-Datei dieser Teil verwenden würde, ist die folgende:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/ScrollView01"
android:background="#FF0000">
<TableLayout
android:id="@+id/TableLayout01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:stretchColumns="0"
android:showDividers="middle"
android:padding="3dp">
<TableRow
android:id="@+id/TableRow01"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="3dp"
android:background="#000000"
android:textColor="#FFFFFF"
android:padding="6dp"
android:text="Hour"
android:textSize="20sp"
android:textStyle="bold" >
</TextView>
<TextView android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:textStyle="bold"
android:text="Minute"
android:padding="6dp"
android:textColor="#FFFFFF"
android:background="#000000">
</TextView>
</TableRow>
</TableLayout>
</ScrollView>
Und das Textview-Layout, das die Textview direkt das Folgende verwendet:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tv"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:textSize="16sp"
android:background="#000000"
android:textIsSelectable="false"
android:textColor="#FFFFFF">
</TextView>
Können Sie Ihre Layout-Datei schreiben zu behandeln? – Noundla
Sicher, hier gehst du, in der aktualisierten Frage. – skandigraun
ändern Sie das zu wahr ... android: textIsSelectable = "true" – Noundla