ฉันจะเพิ่มสัญลักษณ์แสดงหัวข้อย่อยใน TextView ได้อย่างไร


คำตอบ:


359

คุณต้องใช้การเข้ารหัสอักขระที่ถูกต้องเพื่อให้ได้ผลนี้ คุณสามารถลองด้วย•


ปรับปรุง

เพียงเพื่อชี้แจง: ใช้setText("\u2022 Bullet");เพื่อเพิ่มกระสุนโดยทางโปรแกรม0x2022 = 8226


1
สิ่งนี้ช่วยฉัน
Vikas

4
นี่คือคำตอบที่ถูกต้อง ถูกต้องมากกว่าการวางสัญลักษณ์แสดงหัวข้อย่อย
Kyle Clegg

2
@Benny นี้ใช้งานไม่ได้หากฉันตั้งค่าข้อความโดยทางโปรแกรม textView.setText ("& # 8226; hello");
Dwivedi Ji

27
เพียงเพื่อชี้แจง: ใช้setText("\u2022 Bullet");เพื่อเพิ่มกระสุนโดยทางโปรแกรม 0x2022 = 8226
Diederik

106
นี่คือรหัสตัวอักษรรูปแบบที่แตกต่างกันเหล่านี้กระสุน: • = \u2022, ● = \u25CF, ○ = \u25CB, ▪ = \u25AA, ■ = \u25A0, □ = \u25A1, ► = \u25BA
Quent


27

คัดลอกวาง: •. ฉันทำมันด้วยตัวละครแปลก ๆ เช่น◄และ►

แก้ไข: นี่เป็นตัวอย่าง ทั้งสองButtons ที่ด้านล่างมีและandroid:text="◄""►"


7
ปัญหาคือเมื่อเส้นล้อมรอบ มันจะไม่เยื้องบรรทัดที่ 2
Bostone

4
เพียงใช้เลย์เอาต์เชิงเส้นพร้อมแนวนอนแนวนอนแรกดูด้วย "ไอคอนและพื้นที่" ที่สอง: =) ข้อความ => ทั้งหมดไว้
cV2

18

อาจเป็นทางออกที่ดีกว่าที่นั่น แต่นี่คือสิ่งที่ฉันทำ

<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>

มันได้ผลเหมือนที่คุณต้องการ แต่เป็นวิธีการแก้ปัญหาจริงๆ


9

คุณอาจลองBulletSpanตามที่อธิบายไว้ในเอกสาร Android

SpannableString string = new SpannableString("Text with\nBullet point");
string.setSpan(new BulletSpan(40, color, 20), 10, 22, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

ผลลัพธ์


สิ่งที่เกี่ยวกับการใช้คุณสมบัติ bulletRadius ก่อน API 28
ibrahimyilmaz

6

นี่คือวิธีที่ฉันลงเอยทำ

 <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>

และรหัสสำหรับ drawbale / circle.xml คือ

<?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>

4

ด้วย Unicode เราสามารถทำได้อย่างง่ายดาย แต่ถ้าต้องการเปลี่ยนสีของกระสุนฉันลองใช้กระสุนสีและตั้งเป็น drawable ซ้ายและใช้งานได้

<TextView     
    android:text="Hello bullet"
    android:drawableLeft="@drawable/bulleticon" >
</TextView>

0

ตั้งแต่ android ไม่รองรับ<ol>, <ul> or <li>องค์ประกอบ html ฉันต้องทำแบบนี้

<string name="names"><![CDATA[<p><h2>List of Names:</h2></p><p>&#8226;name1<br />&#8226;name2<br /></p>]]></string>

ถ้าคุณต้องการรักษาพื้นที่ที่กำหนดเองจากนั้นใช้ </pre> tag

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.