android - 如何在 Edittext Android 中取消选中的文本?

标签 android android-edittext

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

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

最佳答案

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

    }
});    

关于android - 如何在 Edittext Android 中取消选中的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10714636/

相关文章:

android - java.lang.NoClassDefFoundError:无法解决以下问题:Landroid/support/v4/view/KeyEventCompat

android - 使用 TwoWayView 0.1.4 找不到属性 'twowayview_layoutManager' 的资源标识符

android - 如何从自定义对话框类关闭 Activity ?

android - Eclipse & Cocos2d-x : My First Project, 我更改了 HelloWorldScene.cpp,但部署的游戏中没有发生更改?

java - 向跨度字符串添加额外的文本可以消除我的粗体文本。

Android EditText 替代品

android - 如何为应用程序保留名称?

java - 如何使用文件观察器?

android - 编辑 MultiAutocompleteTextView 样式

Android:以编程方式设置编辑文本或 TextView id