清除EditText上光标位置之前的整个文本

时间:2012-01-18 11:07:47

标签: android android-edittext

我想清除EditText上光标位置之前的整个文本。假设文本 1234567890 光标位于字符4 之后 1234 | 567890 现在我的要求是我有一个自定义按钮,删除光标位置前的文本。

我正在使用editext.getText().clear();清除文字,但清除整个文字。如果光标位于文本末尾,那就很好了。

有可能达到我的要求吗?如果有,怎么样?请帮我解决这个问题。

2 个答案:

答案 0 :(得分:3)

以下是如何处理它:

您将使用以下方式获得光标位置:

editText.getSelectionStart();

editText.getSelectionEnd();

注意:如果未选择任何文本,则两种方法都将返回相同的索引。

然后对文本EditText进行子串 然后再次设置为EditText。像这样的东西:

int pos = editText.getSelectionStart();
String myText = editText.getText().toString();
//sub-string it.
String subStringed = myText.substring(pos, myText.length());
//set it again..
editText.setText(subStringed);

答案 1 :(得分:0)

以下答案可能对您有所帮助。它对我来说非常适合

EditText光标

的选定位置插入text / char
int start = edtPhoneNo.getSelectionStart(); //this is to get the cursor position
    String s="sagar";//s="0123456789";
    edtPhoneNo.getText().insert(start, s);
    //this is to set the cursor position by +1 after inserting char/text
    edtPhoneNo.setSelection(start + 1);

删除EditText光标

的选定位置的文本/字符
 int curPostion = edtPhoneNo.getSelectionEnd();   
     SpannableStringBuilder selectedStr = new 
     SpannableStringBuilder(edtPhoneNo.getText());
     selectedStr.replace(curPostion - 1, curPostion, "");
     edtPhoneNo.setText(selectedStr);
     //this is to set the cursor position by -1 after deleting char/text
     edtPhoneNo.setSelection(curPostion - 1);

EditText光标设置在最后位置

 edtPhoneNo.setSelection(edtPhoneNo.getText().length());

这是EditText

的XML代码
<EditText
            android:id="@+id/edtPhoneNumber"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@android:color/transparent"
            android:focusable="true"
            android:focusableInTouchMode="true"
            android:maxLines="1" />