2012-05-23 13 views
5

太字、イタリック、下線のプロパティをサポートするために編集テキストを使っています。テキストを選択して太字にすると成功しました。今度は、[標準]ボタンをクリックしてから太字部分を削除します。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-inittedextext-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

誰かが手掛かりを持っています。タイプフェイスをNORMALに設定するだけでは機能しません。 –

-1

は単純に使用します。

Typeface.NORMAL 

あなたは、Android docsでそれを確認することができます。

+1

私はこれをトレーディングしましたが、動作しませんでした。 – Nik88

-1

s.setSpan(new StyleSpan(android.graphics.Typeface.BOLD)、startSelection、endSelection、0)ではなく最初にonClick()で使用したのと似ています。 s.setSpan(new StyleSpan(android.graphics.Typeface.NORMAL)、startSelection、endSelection、0)を使用します。 2番目のonclick()で。

+1

私はすでにTypeface.NORMALが動作していないということについては言及しています。 – Nik88

+0

申し訳ありませんが、質問を編集する前にこの回答を掲載しました。 – Saurabh

関連する問題