如何取消粗体在EDITTEXT的Android选定的文本?(How to unbold the se

2019-06-24 17:00发布

我与编辑文本时支持粗体,斜体的性质和underline.I得到选择文本后成功并使其大胆。 现在我想一下普通按钮后去除大胆。

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.**
            }
        });

Answer 1:

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

    }
});    


Answer 2:

在我的项目我使用这个建筑

textView.typeface = Typeface.create(textView.typeface, Typeface.NORMAL)


Answer 3:

只需使用:

Typeface.NORMAL

您可以检查它在Android 文档 。



Answer 4:

类似于您在第一次使用什么样onClick()代替s.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), startSelection, endSelection, 0); 使用s.setSpan(new StyleSpan(android.graphics.Typeface.NORMAL), startSelection, endSelection, 0); 在第二onclick()



文章来源: How to unbold the selected text in Edittext Android?