How to delete the last letter using EditText using a button?

I have buttons that write A and B in edittext. If there is something in the edittext, how to delete the last letters with the "Del" button?

My layout:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <Button android:id="@+id/buttonb" android:layout_width="100dp" android:layout_height="100dp" android:layout_alignParentLeft="true" android:layout_below="@+id/buttona" android:text="@string/buttonb" android:textSize="50sp" android:textStyle="bold" /> <Button android:id="@+id/buttona" android:layout_width="100dp" android:layout_height="100dp" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:text="@string/buttona" android:textSize="50sp" android:textStyle="bold" /> <Button android:id="@+id/buttondel" android:layout_width="100dp" android:layout_height="100dp" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:text="@string/buttondel" android:textSize="50sp" android:textStyle="bold" /> <EditText android:id="@+id/editText" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:ems="58" android:textSize="20sp" android:textStyle="bold" android:inputType="text" > <requestFocus /> </EditText> </RelativeLayout> 

And my java:

 package com.koostamas.keyboard; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.app.Activity; public class MainActivity extends Activity implements OnClickListener { Button buttona, buttondel; EditText editText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText = (EditText) findViewById(R.id.editText); addListenerOnButton(); } public void addListenerOnButton() { buttona = (Button) findViewById(R.id.buttona); buttona.setOnClickListener(this); buttondel = (Button) findViewById(R.id.buttonb); buttondel.setOnClickListener(this); } public void onClick(View v) { switch(v.getId()) { case R.id.buttona : Button buttona = (Button)v; editText.setText(editText.getText().toString()+buttona.getText().toString()); break; case R.id.buttondel : String text = editText.getText().toString(); editText.setText(text.substring(0, text.length() - 1)); break; } } } 

How can i do this? Thanks inn advance.

+6
source share
4 answers

You can get the text of the EditText , and then get the sub-string this text and set that text to EditText again, as shown below ...

 String text = editText.getText().toString(); editText.setText(text.substring(0, text.length() - 1)); 

You can also use the following procedure ... it will be more efficient.

 int length = editText.getText().length(); if (length > 0) { editText.getText().delete(length - 1, length); } 

You should use switch-case as shown below and handle nuttondel onclick () as follows:

 public class MainActivity extends Activity implements OnClickListener { Button buttona, buttonb; Button buttonDel; EditText editText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText = (EditText) findViewById(R.id.editText); addListenerOnButton(); } public void addListenerOnButton() { buttona = (Button) findViewById(R.id.buttona); buttona.setOnClickListener(this); buttonb = (Button) findViewById(R.id.buttonb); buttonb.setOnClickListener(this); buttonDel = (Button) findViewById(R.id.buttondel); buttonDel.setOnClickListener(this); } public void onClick(View v) { switch(v.getId()) { case R.id.buttona: editText.setText(editText.getText().toString()+buttona.getText().toString()); break; case R.id.buttonb: editText.setText(editText.getText().toString()+buttonb.getText().toString()); break; case R.id.buttondel: int length = editText.getText().length(); if (length > 0) { editText.getText().delete(length - 1, length); } break; } } } 
+22
source

Using the substring () method, you can do this,

 String str = myEditText.getText().toString(); str = str.substring ( 0, str.length() - 1 ); // Now set this Text to your edit text myEditText.setText ( str ); 

you need to write the above line in the onClick () method.

+4
source
 str=edittext.gettext+""; str.length(); 

then for the loop or str1 = str.substring ( 0, str.length() - 1 );

0
source

You can do it: -

 import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.app.Activity; public class MainActivity extends Activity implements OnClickListener { Button buttona, buttonb; EditText editText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText = (EditText) findViewById(R.id.editText); addListenerOnButton(); } public void addListenerOnButton() { buttona = (Button) findViewById(R.id.buttona); buttona.setOnClickListener(this); buttonb = (Button) findViewById(R.id.buttonb); buttonb.setOnClickListener(this); } public void onClick(View v) { switch(v.getId()) { case R.id.buttona : //do something break; case R.id.buttondel ://do something break; } } } 
0
source

All Articles