7

我正在使用编辑文本来支持粗体、斜体和下划线的属性。选择文本并将其设为粗体后我成功了。现在我想在点击普通按钮后删除粗体。

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

4 回答 4

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

    }
});    
于 2012-05-23T06:47:21.023 回答
0

在我的项目中,我使用这种结构

textView.typeface = Typeface.create(textView.typeface, Typeface.NORMAL)
于 2018-12-24T17:06:54.153 回答
-1

类似于您在 first中使用的内容,onClick()而不是在 second中使用的内容。s.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), startSelection, endSelection, 0);s.setSpan(new StyleSpan(android.graphics.Typeface.NORMAL), startSelection, endSelection, 0);onclick()

于 2012-05-23T06:39:15.237 回答
-2

只需使用:

Typeface.NORMAL

您可以在 Android文档上查看。

于 2012-05-23T06:35:22.343 回答