2012-05-23 10 views
5

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

टाइपफेस.NORMAL यहां पर काम नहीं कर रहा है। क्या कोई अन्य विकल्प सुझा सकता है।

Button btnBold = (Button) findViewById(R.id.btnBold); 
     btnBold.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       startSelection = etx.getSelectionStart(); 
       endSelection = etx.getSelectionEnd(); 


       Spannable s = etx.getText(); 
       s.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), startSelection, endSelection, 0); 
      } 
     }); 


Button btnNormal = (Button) findViewById(R.id.btnNormal); 
     btnNormal .setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       **//What I have to do here.** 
      } 
     }); 
+0

इस पोस्ट को चेक करें, आप बाकी को समझ लेंगे। http://stackoverflow.com/questions/37002177/how-to-bold-or-italic-or-underline-the-selected-text-in-edittext-programatically/42810064#42810064 – Bosco

+0

इस पोस्ट में समाधान का प्रयास करें http: //stackoverflow.com/questions/37002177/how-to-bold-or-italic-or-underline-the-selected-text-in-edittext-programatically/42810064#42810064 – Bosco

उत्तर

7
Button btnNormal = (Button) findViewById(R.id.btnNormal); 
     btnNormal .setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Spannable str = etx.getText(); 
       StyleSpan[] ss = str.getSpans(selectionStart, selectionEnd, StyleSpan.class); 

     for (int i = 0; i < ss.length; i++) { 
      if (ss[i].getStyle() == android.graphics.Typeface.BOLD){ 
      str.removeSpan(ss[i]);   
      } 
     } 
    etx.setText(str); 

    } 
});  
+1

लगता है कि एक अच्छा जवाब +1 है। –

+0

यह पूरी तरह से काम करता है –

+0

किसी के पास कोई सुराग है, क्यों न सिर्फ प्रकार का चेहरा नॉर्मल को सेट करना काम नहीं कर रहा है? –

-1

, बस का उपयोग करें:

Typeface.NORMAL 

आप इसे एंड्रॉयड docs पर देख सकते हैं।

+1

मैंने अल्रेय को ट्रे किया है लेकिन काम नहीं कर रहा है। – Nik88

-1

s.setSpan (new StyleSpan (android.graphics.Typeface.BOLD) के बजाय पहले onClick() में उपयोग किए गए समान के समान, प्रारंभ चयन, अंत चयन, 0); s.setSpan का उपयोग करें (नया स्टाइलस्पैन (android.graphics.Typeface.NORMAL), प्रारंभ चयन, अंत चयन, 0); दूसरे ऑनक्लिक() में।

+1

मैंने पहले से ही इस सवाल का जिक्र किया है कि Typeface.NORMAL काम नहीं कर रहा है। – Nik88

+0

इसके लिए खेद है, लेकिन आपने अपना प्रश्न संपादित करने से पहले इस जवाब को पोस्ट किया था। – Saurabh

संबंधित मुद्दे