【问题标题】:Delete button in calculator计算器中的删除按钮
【发布时间】:2014-10-03 10:58:31
【问题描述】:

我正在创建一个计算器,我创建了一个删除按钮,但是当我运行该应用程序时,它会崩溃并停止。 这是我的java代码:

请帮帮我。

       private static String removeLastChar(String str) {
       return str.substring(0,str.length()-1);

还有这个

        bdelete.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            editText.setText(removeLastChar(editText.getText().toString()));
        }
       });

这是我的日志

java.lang.RuntimeException: Unable to start activity   ComponentInfo{player.android.com.layout/player.android.com.layout.MyActivity}:  java.lang.NullPointerException
         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
         at android.app.ActivityThread.access$600(ActivityThread.java:141)
         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
         at android.os.Handler.dispatchMessage(Handler.java:99)
         at android.os.Looper.loop(Looper.java:137)
         at android.app.ActivityThread.main(ActivityThread.java:5103)
         at java.lang.reflect.Method.invokeNative(Native Method)
         at java.lang.reflect.Method.invoke(Method.java:525)
         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
         at dalvik.system.NativeStart.main(Native Method)
 Caused by: java.lang.NullPointerException
         at player.android.com.layout.MyActivity.onCreate(MyActivity.java:68)
         at android.app.Activity.performCreate(Activity.java:5133)
         at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
         at android.app.ActivityThread.access$600(ActivityThread.java:141)
         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
         at android.os.Handler.dispatchMessage(Handler.java:99)
         at android.os.Looper.loop(Looper.java:137)
         at android.app.ActivityThread.main(ActivityThread.java:5103)
         at java.lang.reflect.Method.invokeNative(Native Method)
         at java.lang.reflect.Method.invoke(Method.java:525)
         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
         at dalvik.system.NativeStart.main(Native Method)

【问题讨论】:

  • 你的Logcat在哪里????
  • 显示你的 MyActivity.java:68?
  • prakash 这里是 MyActivity.java:68 bdelete.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { editText.setText(removeLastChar(editText.getText().toString ())); } });
  • 是的,我已将 EditText 初始化为 eddittext

标签: android calculator


【解决方案1】:
This is late but help someone.....

delete.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        String s=editText.getText().toString();
        s=s.substring(0,s.lenght()-1)
        editText.setText(s);
    }
   });

this helps for deleting last digit from editText.
i also refer this from
http://stackoverflow.com/questions/21893558/what-is-the-best-way-to-delete-the-last-digit-in-a-calculator-app

【讨论】:

    【解决方案2】:

    使用此代码,您将删除所有字符,因为您说删除从 0 到长度为 1 的字符。

    str.substring(0,str.length()-1);
    

    例如:

    String ll = "Lorem Ipsum 很简单"

    如果你说String ii = ll.substring(0,2);

    你会得到:ii == "Lor"。

    试试这样的:

       public String remove(){
            String character = "2313213";
            String character1 = "";
            for(int i=0;i<character.length()-1;i++){
                character1 += character.charAt(i);
            }
    
            return character1;
        }
    

    【讨论】:

    • 我只想删除 1 个字符,我已经制作了一个清除按钮,现在只想要一个删除按钮来删除最后一个字符
    • ok 把这个代码放在哪里? str.substring(0,str.length()-1);或者只需要把这个 public String remove(){ String character = "2313213";字符串字符 1 = ""; for(int i=0;i
    • 把我的代码“删除”或子字符串(str.length()-1 , str.length());
    • 错误在这一行 bdelete.setOnClickListener(new View.OnClickListener() {
    • 试试这个:editText.setText(removeLastChar(editText.getText().toString()) + "");
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-09-28
    • 1970-01-01
    • 1970-01-01
    • 2022-11-22
    • 2016-01-14
    • 2017-10-06
    • 1970-01-01
    相关资源
    最近更新 更多