当前位置: 首页 > 知识库问答 >
问题:

使用整数时出错。Android Studio中的parseInt()函数[重复]

史智志
2023-03-14
 public void clickFunction(View view)
    {
        Log.i("Info","Button Pressed");
        EditText e1=(EditText)findViewById(editText);
        Number myNumber= new Number();
        String NumberEnteredStr = e1.getText().toString();
        Log.i("Number Entered",NumberEnteredStr);
        myNumber.num = Integer.parseInt(NumberEnteredStr);//line 22
    }

我一点一点地正确输入了整个代码,直到我在第22行输入代码时应用程序崩溃。向int的转换似乎有一些问题。请帮帮我。

PS-我尝试删除代码的不同部分进行调试,问题出在剩余部分的某个地方,可能出在clickFunction(onClick)方法中。

我的错误消息是:

    Caused by: java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Method.invoke(Native Method)
    at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:409)
    at android.view.View.performClick(View.java:6294) 
    at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1119) 
    at android.view.View$PerformClick.run(View.java:24770) 
    at android.os.Handler.handleCallback(Handler.java:790) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:164) 
    at android.app.ActivityThread.main(ActivityThread.java:6494) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) 
 Caused by: java.lang.NumberFormatException: For input string: ""
    at java.lang.Integer.parseInt(Integer.java:620)
    at java.lang.Integer.parseInt(Integer.java:643)
    at com.example.numbershapes.MainActivity.clickFunction(MainActivity.java:22)

我写下了我的全部代码供参考:

package com.example.numbershapes;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import androidx.appcompat.app.AppCompatActivity;
import static com.example.numbershapes.R.id.editText;

public class MainActivity extends AppCompatActivity
{
    class Number
    {
        int num;
    }
    public void clickFunction(View view)
    {
        Log.i("Info","Button Pressed");
        EditText e1=(EditText)findViewById(editText);
        Number myNumber= new Number();
        String NumberEnteredStr = e1.getText().toString();
        Log.i("Number Entered",NumberEnteredStr);
        myNumber.num = Integer.parseInt(NumberEnteredStr);//line 22
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

共有1个答案

阎渝
2023-03-14

正如您在stacktraces中看到的:

对于输入字符串:“”

输入字段的值为空字符串

空字符串不是数字。因此,您必须检查字段是否为空:

myNumber.num = NumberEnteredStr.isEmpty() ? 0 :Integer.parseInt(NumberEnteredStr);//line 22

顺便说一句:注意java命名约定。变量名应以小写字符开头。

 类似资料:
  • 我的任务是完成以下两个Oracle函数: 将CLOB作为输入,并使用AES-256对其进行加密,然后返回加密的CLOB 将加密的CLOB作为输入,使用AES-256对其解密并返回解密的CLOB 它抛出的错误是: ORA-06502:PL/SQL:数值或值错误:十六进制到原始转换错误 ORA-06512:在“sn_pre_stage_415.f_decrypt_clob”,第33行 06502。00

  • 我只是想知道是否有人能帮我解决这个问题。作为我学校项目的一部分,我目前正在为大学锦标赛设计一个计分程序。 现在,我有一个单间的主菜单。py文件,但我有一个不同的注册学生函数。py文件。到目前为止,我已经成功地将该函数调用到主菜单程序中 因此,我调用了register student函数末尾的主菜单函数。这可以让你注册一个学生(他的名字会被添加到一个文本文件中),然后把你送回主菜单,让用户选择另一个

  • 上述情况导致 上述条件返回。 为什么会这样?这些片段之间有什么区别?

  • 遇到PHP错误。严重性:警告 消息:无法修改标头信息-标头已由发送(输出从/home/adityanamansingh/kings.adityanamansingh.com/system/core/Exceptions.php:271开始) 文件名:helpers/url\u helper。php 线路号: 564 回溯: 文件: /home/adityanamansingh/kings.adit

  • 本文向大家介绍javascript中parseInt()函数的定义和用法分析,包括了javascript中parseInt()函数的定义和用法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了javascript中parseInt()函数的定义和用法。分享给大家供大家参考。具体分析如下: 此函数可以解析一个字符串,并返回一个整数。 语法结构: 参数列表: 参数 描述 string 必需。

  • 我正在做一个大项目,但对于这个问题,我写了一个简单的例子。我有两门课。 和 我得到以下输出: 但我想得到这个: