Ich habe eine Textansicht und möchte über XML ein Aufzählungszeichen in meinem Text einfügen. Ist es möglich?
Sie müssen die rechte Zeichencodierung verwenden, um diesen Effekt zu erzielen. Sie könnten es mit •
versuchen
Zur Klarstellung: Verwenden Sie setText("\u2022 Bullet");
, um das Aufzählungszeichen programmgesteuert hinzuzufügen. 0x2022 = 8226
Das hat für mich funktioniert:
<string name="text_with_bullet">Text with a \u2022</string>
Kopieren Einfügen: •. Ich habe es mit anderen komischen Charakteren wie ◄ und ► gemacht.
Edit:hier ist ein Beispiel. Die beiden Button
s am unteren Rand haben Android:text="◄"
und "►"
.
Eine bessere Lösung irgendwo da draußen, aber das habe ich getan.
<TableLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
>
<TableRow>
<TextView
Android:layout_column="1"
Android:text="•"></TextView>
<TextView
Android:layout_column="2"
Android:layout_width="wrap_content"
Android:text="First line"></TextView>
</TableRow>
<TableRow>
<TextView
Android:layout_column="1"
Android:text="•"></TextView>
<TextView
Android:layout_column="2"
Android:layout_width="wrap_content"
Android:text="Second line"></TextView>
</TableRow>
</TableLayout>
Es funktioniert so, wie Sie es wünschen, aber wirklich eine Problemumgehung.
So endete ich damit.
<LinearLayout
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:orientation="horizontal">
<View
Android:layout_width="20dp"
Android:layout_height="20dp"
Android:background="@drawable/circle"
Android:drawableStart="@drawable/ic_bullet_point" />
<TextView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_marginLeft="10dp"
Android:text="Your text"
Android:textColor="#000000"
Android:textSize="14sp" />
</LinearLayout>
und der Code für drawable/circle.xml lautet
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:innerRadius="0dp"
Android:shape="ring"
Android:thickness="5dp"
Android:useLevel="false">
<solid Android:color="@color/black1" />
</shape>
Mit Unicode können wir das problemlos tun, aber wenn ich die Farbe der Kugel ändern möchte, habe ich es mit farbigem Kugelbild versucht und es als links gezeichnet gesetzt
<TextView
Android:text="Hello bullet"
Android:drawableLeft="@drawable/bulleticon" >
</TextView>
Sie können versuchen, BulletSpan wie in den Android-Dokumenten beschrieben.
SpannableString string = new SpannableString("Text with\nBullet point");
string.setSpan(new BulletSpan(40, color, 20), 10, 22, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
Da Android <ol>, <ul> or <li>
html-Elemente nicht unterstützt, musste ich es so machen
<string name="names"><![CDATA[<p><h2>List of Names:</h2></p><p>•name1<br />•name2<br /></p>]]></string>
wenn Sie den benutzerdefinierten Speicherplatz beibehalten möchten, verwenden Sie </pre> tag
.