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