Insert character between the cursor position in edit text

You need to implement OnClickListener for your buttons. Inside there you need to update the text of the editor. For example for '5' button:

public void onClick(View v) {

    String currentText = edt.getText();
    edt.setText(currentText + "5");
}

Try the following code

int start =editText.getSelectionStart(); //this is to get the the cursor position
String s = "Some string";
editText.getText().insert(start, s); //this will get the text and insert the String s into   the current position

Here is the code to delete selected text from EditText

int start = t1.getSelectionStart();  //getting cursor starting position
int end = t1.getSelectionEnd();      //getting cursor ending position
String selectedStr = t1.getText().toString().substring(start, end);    //getting the selected Text
t1.setText(t1.getText().toString().replace(selectedStr, ""));    //replacing the selected text with empty String and setting it to EditText

To insert:

    String dialled_nos = dialpad_text.getText().toString();
    String number = view.getTag().toString(); // 1,2....9,0
    int start = dialpad_text.getSelectionStart(); 
    dialled_nos = new StringBuilder(dialled_nos).insert(start, number).toString();
    dialpad_text.setText(dialled_nos);
    dialpad_text.setSelection(start+1); // cursor will move to new position

To remove:

    String dialled_nos = dialpad_text.getText().toString();
    int remove_index_position = dialpad_text.getSelectionStart()-1; 
    StringBuilder dialled_nos_builder = new StringBuilder(dialled_nos);
    if(remove_index_position>=0) {
        dialled_nos_builder.deleteCharAt(remove_index_position);
        dialpad_text.setText(dialled_nos_builder.toString()); 
        dialpad_text.setSelection(remove_index_position);
    }

Tags:

Android