如何从edittext中删除字符?

mad*_*und 6 android

我想知道是否有任何方法可以从中删除特定字符EditText.我想EditText通过在编辑文本中指定位置来删除章程是否有类似removeAt()的内容EditText

    public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final Button b1=(Button)findViewById(R.id.button1);
        final EditText ed1=(EditText)findViewById(R.id.editText1);
        b1.setOnClickListener(new View.OnClickListener() {

            public void onClick(View arg0) {
                // TODO Auto-generated method stub

             //i want something like this
                    ed1.removeAt(5);
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }


}
Run Code Online (Sandbox Code Playgroud)

额外的信息

主要问题是我想在edittext中使文本变为粗体而不是所有文本.设置粗体按钮后输入的文本(粗体是我的切换按钮).好的,这里是代码

     ed1.setOnKeyListener(new OnKeyListener() {

        public boolean onKey(View v, int keyCode, KeyEvent event) {
            // TODO Auto-generated method stub
            int i = 0;

            switch(event.getAction())
            {
            case KeyEvent.ACTION_UP:
                    if(bold.isChecked())
                    {
                         i=ed1.getSelectionStart();

                         ed1.append(Html.fromHtml("<b>"+ed1.getText().toString().charAt(i-1)+"</b>"));

                    }
                    return true;

            }
            return false;
        }
    });
Run Code Online (Sandbox Code Playgroud)

问题是,我得到双字符的一个是普通字符,然后再加粗字体,所以我想通过指定位置删除正常字符

Edd*_*y K 10

您必须先将其更改为字符串,因为getText返回可编辑,例如:

int charIndex;
String text = ed1.getText().toString();
text = text.substring(0, charIndex) + text.substring(charIndex+1);
ed1.setText(text);
Run Code Online (Sandbox Code Playgroud)

删除角色并保持BOLD字符相同:

ed1.setText((Spanned)ed1.getText().delete(indexStart , indexEnd));
Run Code Online (Sandbox Code Playgroud)

这将从索引"indexStart"删除字符到"indexEnd -1".例如,如果你使用删除(0,1); 它会删除第一个字符.

我希望有帮助:)


Aji*_*bey 5

我的实现如下。我希望它会有所帮助

int cursorPosition = mDialerEditText.getSelectionStart();
    if (cursorPosition > 0) {
          mDialerEditText.setText(mDialerEditText.getText().delete(cursorPosition - 1, cursorPosition));
        mDialerEditText.setSelection(cursorPosition-1);
    }
Run Code Online (Sandbox Code Playgroud)