How to delete the last letter from EditText with button?(如何使用按钮从 EditText 中删除最后一个字母?)
问题描述
我必须将 A 和 B 写入编辑文本的按钮.如果edittext中有内容,如何使用Del"按钮删除最后一个字母?
I have to buttons that writes A and B to an edittext. If there is something in the edittext how can I delete the last letters with the "Del" button ?
我的布局:
<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>
还有我的 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 it? Thanks inn advance.
推荐答案
你可以检索EditText的文本,然后获取该文本的sub-string并设置再次将该文本发送到 EditText 如下...
You can retrieve the text of EditText and then get the sub-string of that text and set again that text to EditText as below...
String text = editText.getText().toString();
editText.setText(text.substring(0, text.length() - 1));
你也可以使用下面的过程....这样会更有效率.
You can also use following procedure....it will be more efficient.
int length = editText.getText().length();
if (length > 0) {
    editText.getText().delete(length - 1, length);
}
您应该使用 switch-case 如下...并按如下方式处理您的 nuttondel onclick()...
You should use switch-case as below...and handle your 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;
       }
    }
}
                        这篇关于如何使用按钮从 EditText 中删除最后一个字母?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何使用按钮从 EditText 中删除最后一个字母?
				
        
 
            
        - Java包名称中单词分隔符的约定是什么? 2022-01-01
 - Safepoint+stats 日志,输出 JDK12 中没有 vmop 操作 2022-01-01
 - C++ 和 Java 进程之间的共享内存 2022-01-01
 - 如何使用WebFilter实现授权头检查 2022-01-01
 - Jersey REST 客户端:发布多部分数据 2022-01-01
 - Spring Boot连接到使用仲裁器运行的MongoDB副本集 2022-01-01
 - Eclipse 插件更新错误日志在哪里? 2022-01-01
 - 将log4j 1.2配置转换为log4j 2配置 2022-01-01
 - 从 finally 块返回时 Java 的奇怪行为 2022-01-01
 - value & 是什么意思?0xff 在 Java 中做什么? 2022-01-01
 
						
						
						
						
						