2012-05-23 27 views
5

我與編輯文本時支持粗體,斜體和underline.I的性能得到了選擇文本後成功並使其大膽。現在我想在點擊普通按鈕後刪除粗體。如何在Edittext Android中取消選定的文本?

Typeface.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的解決方案://問題/ 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

任何一個有線索,爲什麼單單類型面設定爲NORMAL不工作? –

-1

只需使用:

Typeface.NORMAL 

您可以檢查它在Android docs

+1

我已經alreday托盤,但不工作。 – Nik88

-1

與您在第一次使用onClick()而不是s.setSpan(新StyleSpan(android.graphics.Typeface.BOLD),startSelection,endSelection,0)中使用的類似;使用s.setSpan(新StyleSpan(android.graphics.Typeface.NORMAL),startSelection,endSelection,0);在第二個onclick()中。

+1

我已經有問題提到Typeface.NORMAL不工作。 – Nik88

+0

對不起,但是我在你編輯你的問題之前發佈了這個答案。 – Saurabh

相關問題