Android एप्लीकेशन में बुलेटेड लिस्ट कैसे जोड़े?


89

मैंने अपने प्रश्न को टाल दिया है, लेकिन उपलब्ध जवाब का काम नहीं कर रहा है। मेरे टेक्स्टव्यू में बुलेटेड सूची कैसे जोड़ सकते हैं।

जवाबों:


185

उल / ली / ओल के रूप में करने के लिए कठिन समर्थित नहीं हैं। सौभाग्य से आप इसे सिंटैक्टिक शुगर के रूप में उपयोग कर सकते हैं:

&#8226; foo<br/>
&#8226; bar<br/>
&#8226; baz<br/>

&#8226;एक सूची बुलेट के लिए HTML इकाई है और अधिक विकल्प यहाँ हैं http://www.elizabethcastro.com/html/extras/entities.html

मार्क मर्फी (@CommonsWare) http://commonsware.com/blog/Android/2010/05/26/html-tags-supported-by-textview.html द्वारा प्रदान किए जाने वाले टैग के बारे में और अधिक जानकारी लोड करें।

((TextView)findViewById(R.id.my_text_view)).setText(Html.fromHtml(myHtmlString));

1
कॉमन्सवेयर साइट के लिंक के लिए धन्यवाद, कुछ समय के लिए ऐसा कुछ ढूंढ रहा था!
नॉर्मन एच

4
कृपया ध्यान दें कि यदि आप मान / स्ट्रिंग्स.xml से स्ट्रिंग प्राप्त कर रहे हैं (संदर्भ का उपयोग करते हुए। String (R.string.yourstring);), आपको इसे CDATA में लपेटना होगा : <string name="string_name"><![CDATA[ &#8226; foo<br /> &#8226; bar... ]]></string>
Quentin S.

5
यह काम अगर वहाँ bulletpoint मद में एक से अधिक पंक्ति है नहीं है
thepoosh

ऐसा लगता है कि ul/ liअब समर्थित है stackoverflow.com/questions/9754076/…
hmac

55
  1. ब्राउप ने HTML पर अच्छा तरीका बताया। HTML इकाई के साथ प्रदान किया गया समाधान उपयोगी हो सकता है। लेकिन इसमें केवल बुलेट शामिल है। यदि आपका पाठ लपेटता है, तो इंडेंट सही नहीं होगा।

  2. मैंने एक वेब दृश्य को एम्बेड करने वाले अन्य समाधान पाए। हो सकता है कि कुछ के लिए उपयुक्त हो, लेकिन मुझे लगता है कि इसकी तरह का ओवरकिल ... (एक सूची दृश्य का उपयोग करने के साथ ही।)

  3. मुझे नेल्सन का रचनात्मक दृष्टिकोण पसंद है : डी, ​​लेकिन यह आपको एक पाठ दृश्य में एक अनियंत्रित सूची को जोड़ने की संभावना नहीं देता है।

  4. बुलेटस्पैन का उपयोग करके गोलियों के साथ एक अनियंत्रित सूची का मेरा उदाहरण

    CharSequence t1 = getText(R.string.xxx1);
    SpannableString s1 = new SpannableString(t1);
    s1.setSpan(new BulletSpan(15), 0, t1.length(), 0);
    CharSequence t2 = getText(R.string.xxx2);
    SpannableString s2 = new SpannableString(t2);
    s2.setSpan(new BulletSpan(15), 0, t2.length(), 0);
    textView.setText(TextUtils.concat(s1, s2));

सकारात्मक:

  • पाठ लपेटने के बाद सही इंडेंट वाली बुलेट्स।
  • आप TextView के एक उदाहरण में अन्य स्वरूपित या स्वरूपित पाठ को संयोजित नहीं कर सकते
  • आप BulletSpan कंस्ट्रक्टर में परिभाषित कर सकते हैं कि इंडेंट कितना बड़ा होना चाहिए।

नकारात्मक:

  • आपको सूची के प्रत्येक आइटम को एक अलग स्ट्रिंग संसाधन में सहेजना होगा। तो यू आपकी सूची को परिभाषित नहीं कर सकता है कि आप HTML में कैसे आराम कर सकते हैं।

1
यह दृष्टिकोण (बिल्कुल नकल) 2.2 पर काम नहीं करता है। आप केवल एक ही गोली के साथ समाप्त होते हैं।
Skone

हाय स्कोन, यह 2.2 एमुलेटर और मूल एंड्रॉइड बिल्ड में काम करता है। मैंने एक एंड्रॉइड संस्करण देखा, जहां बुलेट और टेक्स्ट के बीच की जगह को नजरअंदाज कर दिया गया था। लेकिन गोली फिर भी दिखाई दी। क्या आपके पास अपने बुलेट स्ट्रिंग्स के अंत में एक नई रेखा है?
डिएगो फ्रीनर

यह समाधान तब काम नहीं करता है जब आप टेक्स्टव्यू में लाइन स्पेसिंग बदलते हैं
टेक्स्टव्यू

बुलेटस्पैन के साथ इसे करने का शानदार तरीका, पूरी तरह से काम करता है और बहुत आसान है!
मूनब्लूम

7
उपरोक्त कोड मेरे लिए काम करता है !!! मुझे बस इतना करना है कि xml में प्रत्येक स्ट्रिंग के अंत में "\ n" जोड़ना है ....
अरहत बैद

38

मुझे एक विकल्प मिल गया है .. बस इस बुलेट को कॉपी करें "•" (यह एक टेक्स्ट है) और अपने टेक्स्ट व्यू के टेक्स्ट में पेस्ट करें, आप टेक्स्ट कलर बदलकर बुलेट कलर बदल सकते हैं और साथ ही आकार, ऊँचाई चौड़ाई जैसी अन्य सभी विशेषताओं को बदल सकते हैं। .. :)

टाइपिंग के दौरान आप इस बुलेट को प्राप्त करने के लिए शॉर्ट-कट का उपयोग कर सकते हैं

विंडोज के लिए

ALT + 7

मैक के लिए

ALT + 8


2
Alt + 7 मेरे लिए काम नहीं करता है (शायद इसकी केवल एक मैक या लिनक्स चीज) लेकिन यूनिकोड चरित्र को कॉपी और पेस्ट करना • काम किया।
जॉन

2
FYI करें: ALT + 7 केवल तभी काम करेगा जब कीबोर्ड में अलग-अलग संख्या होगी।
aks4125

यदि आप प्रतीक को कोड में, अर्थात एक तार में चिपकाते हैं, तो गैर-अस्की चर और फ़ाइल एन्कोडिंग के साथ समस्याओं को ध्यान में रखें (IntelliJ के निचले-दाएं कोने से फ़ाइल के एन्कोडिंग को बदलने का प्रयास करें)। बेहतर होगा कि आप इसी क्रम से भागने के क्रम का उपयोग करें (जैसे \ u1234)।
गिल वेगलियाच

जाने का रास्ता !! ठग जीवन!
goonerDroid

2
\ u2022 का जवाब है
user2322082

21

यहाँ विभिन्न उत्तरों से प्रेरित होकर, मैंने इसे एक आसान लाइनर बनाने के लिए एक उपयोगिता वर्ग बनाया । यह लिपटे पाठ के लिए इंडेंटेशन के साथ एक बुलेटेड सूची बनाएगा। इसमें स्ट्रिंग्स, स्ट्रिंग संसाधनों और स्ट्रिंग सरणी संसाधनों के संयोजन के तरीके हैं।

यह एक CharSequence बनाएगा जिसे आप TextView में पास कर सकते हैं। उदाहरण के लिए:

CharSequence bulletedList = BulletListUtil.makeBulletList("First line", "Second line", "Really long third line that will wrap and indent properly.");
textView.setText(bulletedList);

आशा है कि यह उपयोगी है। का आनंद लें।

नोट: यह सिस्टम मानक बुलेट का उपयोग करेगा, पाठ के समान एक छोटा सर्कल। यदि आप एक कस्टम बुलेट चाहते हैं, तो बुलेटस्पैन को उप- वर्गित करने पर विचार करें और अपनी drawLeadingMargin()इच्छित बुलेट को ओवरराइड करें । एक विचार के लिए BulletSpan स्रोत पर एक नज़र डालें कि यह कैसे काम करता है।

public class BulletTextUtil {

/**
 * Returns a CharSequence containing a bulleted and properly indented list.
 *
 * @param leadingMargin In pixels, the space between the left edge of the bullet and the left edge of the text.
 * @param context
 * @param stringArrayResId A resource id pointing to a string array. Each string will be a separate line/bullet-point.
 * @return
 */
public static CharSequence makeBulletListFromStringArrayResource(int leadingMargin, Context context, int stringArrayResId) {
    return makeBulletList(leadingMargin, context.getResources().getStringArray(stringArrayResId));
}

/**
 * Returns a CharSequence containing a bulleted and properly indented list.
 *
 * @param leadingMargin In pixels, the space between the left edge of the bullet and the left edge of the text.
 * @param context
 * @param linesResIds An array of string resource ids. Each string will be a separate line/bullet-point.
 * @return
 */
public static CharSequence makeBulletListFromStringResources(int leadingMargin, Context context, int... linesResIds) {
    int len = linesResIds.length;
    CharSequence[] cslines = new CharSequence[len];
    for (int i = 0; i < len; i++) {
        cslines[i] = context.getString(linesResIds[i]);
    }
    return makeBulletList(leadingMargin, cslines);
}

/**
 * Returns a CharSequence containing a bulleted and properly indented list.
 *
 * @param leadingMargin In pixels, the space between the left edge of the bullet and the left edge of the text.
 * @param lines An array of CharSequences. Each CharSequences will be a separate line/bullet-point.
 * @return
 */
public static CharSequence makeBulletList(int leadingMargin, CharSequence... lines) {
    SpannableStringBuilder sb = new SpannableStringBuilder();
    for (int i = 0; i < lines.length; i++) {
        CharSequence line = lines[i] + (i < lines.length-1 ? "\n" : "");
        Spannable spannable = new SpannableString(line);
        spannable.setSpan(new BulletSpan(leadingMargin), 0, spannable.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
        sb.append(spannable);
    }
    return sb;
}

}

थैंक यू डियर सर! मैंने मेक बलेटलिस्ट फ़ंक्शन का उपयोग किया और यह एक आकर्षण की तरह काम करता है: D
Aba

यह विस्मयकारी है! धन्यवाद)
kulikovman

10

यह अब तक सबसे आसान है ..

<string name="bullet_ed_list">\n\u2022 He has been Chairman of CFL Manufacturers Committee of ELCOMA, the All India Association of Lighting Equipment Manufacturers.
\n\u2022 He has been the President of Federation of Industries of India (FII).</string>

8

रेडी-टू-यूज़ कोटलिन एक्सटेंशन

fun List<String>.toBulletedList(): CharSequence {
    return SpannableString(this.joinToString("\n")).apply {
        this@toBulletedList.foldIndexed(0) { index, acc, span ->
            val end = acc + span.length + if (index != this@toBulletedList.size - 1) 1 else 0
            this.setSpan(BulletSpan(16), acc, end, 0)
            end
        }
    }
}

उपयोग:

val bulletedList = listOf("One", "Two", "Three").toBulletedList()
label.text = bulletedList

रंग और आकार:

बुलेट कलर या साइज़ बदलने के लिए BulletSpan के बजाय CustomBulletSpan का उपयोग करें

package com.fbs.archBase.ui.spans

import android.graphics.Canvas
import android.graphics.Color
import android.graphics.Paint
import android.text.Layout
import android.text.Spanned
import android.text.style.LeadingMarginSpan
import androidx.annotation.ColorInt

class CustomBulletSpan(
        private val bulletRadius: Int = STANDARD_BULLET_RADIUS,
        private val gapWidth: Int = STANDARD_GAP_WIDTH,
        @ColorInt private val circleColor: Int = STANDARD_COLOR
) : LeadingMarginSpan {

    private companion object {
        val STANDARD_BULLET_RADIUS = Screen.dp(2)
        val STANDARD_GAP_WIDTH = Screen.dp(8)
        const val STANDARD_COLOR = Color.BLACK
    }

    private val circlePaint = Paint().apply {
    color = circleColor
        style = Paint.Style.FILL
        isAntiAlias = true
    }

    override fun getLeadingMargin(first: Boolean): Int {
        return 2 * bulletRadius + gapWidth
    }

    override fun drawLeadingMargin(
            canvas: Canvas, paint: Paint, x: Int, dir: Int,
            top: Int, baseline: Int, bottom: Int,
            text: CharSequence, start: Int, end: Int,
            first: Boolean,
            layout: Layout?
    ) {
        if ((text as Spanned).getSpanStart(this) == start) {
            val yPosition = (top + bottom) / 2f
            val xPosition = (x + dir * bulletRadius).toFloat()

            canvas.drawCircle(xPosition, yPosition, bulletRadius.toFloat(), circlePaint)
        }
    }
}

क्या आप पाठ के आकार से मेल खाने के लिए बुलेट के आकार को बदल सकते हैं?
नेनूर

@NoahTanenholtz आप बुलेटस्पैन () तर्क मान बदलकर बुलेट का आकार बढ़ा सकते हैं
मिखाइल

ओह मैंने सोचा था कि
nenur

बुलेट के आकार के बजाय रिक्ति को बढ़ाया जाता है):
सुमित शुक्ला

@SumitShukla टिप्पणी के लिए धन्यवाद। मैंने रंग और आकार के अनुकूलन के लिए सिर्फ BulletCustomSpan को जोड़ा
मिखाइल

4

एक विकल्प जो मैंने उपयोग किया था वह एक शैली का उपयोग करके बुलेट को खींचने योग्य सेट करना था।

<style name="Text.Bullet">
    <item name="android:background">@drawable/bullet</item>
    <item name="android:paddingLeft">10dp</item>
</style>

उपयोग:

<TextView android:id="@+id/tx_hdr" 
android:text="Item 1" style="@style/Text.Bullet" />

मैंने अभी ड्रॉबल के लिए वेब से एक छोटी बुलेट की पिक्चर ली। एक्लिप्स में ग्राफिकल लेआउट पाठ के नीचे फैले ग्राफिक को दिखाता है ... बल्कि मैं जो चाहता था, उससे बहुत दूर।
JohnK

1
मुझे लगता है कि उसका मतलब थाandroid:drawableLeft=
ब्लंडेल सेप

4

एक कंपाउंड ड्रॉबल के साथ साधारण टेक्स्ट व्यू का उपयोग करें। उदाहरण के लिए

<TextView     
    android:text="Sample text"
    android:drawableLeft="@drawable/bulletimage" >
</TextView>

3

यहां एक और समाधान है, एक टेक्स्टव्यू में एक सूची को बिल्कुल नहीं जोड़ना, लेकिन मुझे लगता है कि लक्ष्य समान है। यह TableLayout का उपयोग कर रहा है, जिसे केवल XML की आवश्यकता है और यह छोटे ऑर्डर या अनऑर्डर किए गए सूचियों के लिए वास्तव में सरल है। नीचे, नमूना कोड मैंने इसके लिए उपयोग किया था, जावा में कोड की एक पंक्ति नहीं।

सकारात्मक:

  • आप तालिका पंक्तियों में जो कुछ भी पसंद कर सकते हैं, वह एक टेक्स्टव्यू होना चाहिए
  • आप इसका उपयोग बुलेटेड और क्रमांकित सूची या जो भी हो बनाने के लिए कर सकते हैं
  • आप इंडेंट को पैडिंग या लेआउट_वेट का उपयोग करके परिभाषित कर सकते हैं

नकारात्मक:

  • बहुत लंबी सूचियों के लिए थकाऊ (जब तक आप regex के साथ कुछ चालाक पाठ संपादक का उपयोग नहीं करते हैं)
  • प्रत्येक सूची आइटम को एक अलग स्ट्रिंग संसाधन के रूप में संग्रहीत किया जाता है

        <TableRow
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
    
            >
    
            <TextView
                style="@style/helpPagePointsStyle"
                android:layout_weight="0.2"
                android:text="1." />
    
            <TextView
                style="@style/helpPagePointsStyle"
                android:layout_weight="3"
                android:text="@string/help_points1" />
        </TableRow>
    
        <TableRow
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            >
            <TextView
                style="@style/helpPagePointsStyle"
                android:layout_weight="0.2"
                android:text="2." />
    
            <TextView
                style="@style/helpPagePointsStyle"
                android:layout_weight="3"
                android:text="@string/help_points2" />
        </TableRow>
        <TableRow
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            >
            <TextView
                style="@style/helpPagePointsStyle"
                android:layout_weight="0.2"
                android:text="3." />
            <TextView
                style="@style/helpPagePointsStyle"
                android:layout_weight="3"
                android:text="@string/help_points3" />
        </TableRow>
    
    
    </TableLayout>

और शैली:

<style name="helpPagePointsStyle">
    <item name="android:layout_width">0dp</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:gravity">left</item>
</style>

2

यहां एक हेडर के साथ एक बुलेटेड सूची है और प्रत्येक आइटम के सामने एक टैब है।

public class BulletListBuilder {

    private static final String SPACE = " ";
    private static final String BULLET_SYMBOL = "&#8226";
    private static final String EOL = System.getProperty("line.separator");
    private static final String TAB = "\t";

    private BulletListBuilder() {

    }

    public static String getBulletList(String header, String []items) {
        StringBuilder listBuilder = new StringBuilder();
        if (header != null && !header.isEmpty()) {
            listBuilder.append(header + EOL + EOL);
        }
        if (items != null && items.length != 0) {
            for (String item : items) {
                Spanned formattedItem = Html.fromHtml(BULLET_SYMBOL + SPACE + item);
                listBuilder.append(TAB + formattedItem + EOL);
            }
        }
        return listBuilder.toString();
    }

}

2

पूरी तरह से खत्म हो गया और एक कस्टम पाठ दृश्य बना।

इसे इस तरह उपयोग करें:

<com.blundell.BulletTextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="--bullet 1 --bullet two --bullet three --bullet four" />

और कोड:

package com.blundell;

import android.content.Context;
import android.text.Html;
import android.util.AttributeSet;
import android.widget.TextView;

public class BulletTextView extends TextView {
    private static final String SPLITTER_CHAR = "--";
    private static final String NEWLINE_CHAR = "<br/>";
    private static final String HTML_BULLETPOINT = "&#8226;";

    public BulletTextView(Context context, AttributeSet attrs) {
        this(context, attrs, android.R.attr.textViewStyle);
    }

    public BulletTextView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        checkForBulletPointSplitter();
    }

    private void checkForBulletPointSplitter() {
        String text = (String) getText();
        if (text.contains(SPLITTER_CHAR)) {
            injectBulletPoints(text);
        }
    }

    private void injectBulletPoints(String text) {
        String newLinedText = addNewLinesBetweenBullets(text);
        String htmlBulletText = addBulletPoints(newLinedText);
        setText(Html.fromHtml(htmlBulletText));
    }

    private String addNewLinesBetweenBullets(String text) {
        String newLinedText = text.replace(SPLITTER_CHAR, NEWLINE_CHAR + SPLITTER_CHAR);
        newLinedText = newLinedText.replaceFirst(NEWLINE_CHAR, "");
        return newLinedText;
    }

    private String addBulletPoints(String newLinedText) {
        return newLinedText.replace(SPLITTER_CHAR, HTML_BULLETPOINT);
    }

}

हम बुलेट का आकार और रिक्ति कैसे बढ़ा सकते हैं?
सुमित शुक्ला

यह उदाहरण &#8226;आपको दूसरे प्रतीक fsymbols.com/signs/bullet-point
Blundell

1

मुझे यह सबसे आसान तरीका लगता है, textView को छोड़ दें क्योंकि यह xml फ़ाइल में है और निम्न जावा कोड का उपयोग करें। यह मेरे लिए बिल्कुल ठीक काम किया।

private static final String BULLET_SYMBOL = "&#8226";

@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_tutorial);

    TextView tv = (TextView) findViewById(R.id.yourTextView);

    tv.setText("To perform this exercise you will need the following: "
                        + System.getProperty("line.separator")//this takes you to the next Line
                        + System.getProperty("line.separator")
                        + Html.fromHtml(BULLET_SYMBOL + " Bed")
                        + System.getProperty("line.separator")
                        + Html.fromHtml(BULLET_SYMBOL + " Pillow"));
}

1

बुलेट वाली सूची बस का उपयोग करके बनाया जा सकता है <ul>और<li>स्ट्रिंग संसाधन में टैग ।

कोड में स्ट्रिंग सेट करने के लिए सेटटेक्स्ट (Html.fromHtml (स्ट्रिंग)) का उपयोग न करें ! बस स्ट्रिंग को सामान्य रूप से xml में सेट करें या सेटटेक्स्ट ( स्ट्रिंग ) का उपयोग करके ।

उदाहरण के लिए:

strings.xml फ़ाइल

<string name="str1">
    <ul>
        <li><i>first</i> item</li>
        <li>item 2</li>
    </ul>
</string>


लेआउट। xml फ़ाइल

<TextView
    android:text="@string/str1"
/>


यह निम्नलिखित परिणाम देगा:

  • पहला आइटम
  • आइटम 2


निम्नलिखित टैग इस तरह समर्थित हैं (सीधे स्ट्रिंग संसाधन में एम्बेडेड):

  • <a> (विशेषता "href" का समर्थन करता है)
  • <एनोटेशन>
  • <B>
  • <Big>
  • <font> ("ऊँचाई", "आकार", "fgcolor" और "बाइकलर", पूर्णांक के रूप में विशेषता का समर्थन करता है)
  • <I>
  • <Li>
  • <मार्की>
  • <Small>
  • <हड़ताल>
  • <Sub>
  • <Sup>
  • <Tt>
  • <U>

आपको जरूरत नहीं है<ul>
Blundell

5
काम नहीं करता। समर्थित HTML टैग केवल <b>, <i> और <u> हैं। डेवलपर
.android.com

पूरी तरह से मेरे लिए काम किया! केवल एक चीज जो मुझे करनी थी, वह काम करने के लिए प्रत्येक पंक्ति की शुरुआत में \ n डाला गया था। यानी\n<ul><li>a</li> \n<li>b</li> \n<li>c</li></ul>
जैक टी

1

single line textआप के लिए बस चित्र का उपयोग कर सकते हैं:

<TextView
    android:id="@+id/txtData"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:drawableStart="@drawable/draw_bullet_list"
    android:drawablePadding="@dimen/padding_8dp"
    android:text="Hello"
    android:textColor="@color/colorBlack" />

draw_bullet_list.xml :

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <solid android:color="@color/colorAccent" />

    <size
        android:width="12dp"
        android:height="12dp" />

</shape>

आप बदल सकते हैं shape, size, colorआपकी आवश्यकता के आधार पर।


0

बुलेटेड सूची करने के लिए आपके पास दो विकल्प हैं

  • HTML (ul, ol) का उपयोग करके सूची बनाएं और html को एक WebView में लोड करें
  • डेटा को एक सूची दृश्य में लोड करें और सूची आइटम लेआउट में बुलेट के लिए उपयुक्त छवि पर अपने टेक्स्ट दृश्य के बाईं ओर खींचने योग्य सेट करें।

विकल्प 1 सबसे आसान है।



0

यदि आप editText संरचना के साथ बुलेट सूची बनाना चाहते हैं।

मुझे इस संदर्भ में फायदा हुआ

आप इस गोलियों का उपयोग कर सकते हैं

           EditText  edtNoteContent = findViewById(R.id.editText_description_note);            

        edtNoteContent.addTextChangedListener(new TextWatcher(){
            @Override
            public void afterTextChanged(Editable e) {

            }
            @Override
            public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {

            }
            @Override
            public void onTextChanged(CharSequence text, int start, int lengthBefore, int lengthAfter)
            {
                if (lengthAfter > lengthBefore) {
                    if (text.toString().length() == 1) {
                        text = "◎ " + text;
                        edtNoteContent.setText(text);
                        edtNoteContent.setSelection(edtNoteContent.getText().length());
                    }
                    if (text.toString().endsWith("\n")) {
                        text = text.toString().replace("\n", "\n◎ ");
                        text = text.toString().replace("◎ ◎", "◎");
                        edtNoteContent.setText(text);
                        edtNoteContent.setSelection(edtNoteContent.getText().length());
                    }
                }
            }
        });
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.