Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在两个活动中制作计算器_Java_Android_Android Studio_Calculator - Fatal编程技术网

Java 如何在两个活动中制作计算器

Java 如何在两个活动中制作计算器,java,android,android-studio,calculator,Java,Android,Android Studio,Calculator,我制作了一个应用程序,用户可以选择食物类型,输入体重,然后计算卡路里。然后将该卡路里移动到MainActivity(当按下“保存”按钮时),其中将显示当天的总卡路里 我需要该应用程序将计算出的所有卡路里添加到主活动的任何现有值中。我写了下面的代码,但是当我在第二个活动中按下保存按钮时,应用程序崩溃了 String greeting = getIntent().getStringExtra("Greeting Message"); EditText editText1 = (EditText)fi

我制作了一个应用程序,用户可以选择食物类型,输入体重,然后计算卡路里。然后将该卡路里移动到MainActivity(当按下“保存”按钮时),其中将显示当天的总卡路里

我需要该应用程序将计算出的所有卡路里添加到主活动的任何现有值中。我写了下面的代码,但是当我在第二个活动中按下保存按钮时,应用程序崩溃了

String greeting = getIntent().getStringExtra("Greeting Message");
EditText editText1 = (EditText)findViewById(R.id.editText1);
String value = editText1.getText().toString();

Integer aValue = (value != null && !value.isEmpty()) ? Integer.parseInt(value) : 0 ;
Integer bValue = (greeting != null && !greeting.isEmpty()) ? count +=Integer.parseInt(greeting) : 0 ;

editText1.setText(count + "");
堆栈错误:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nicola.student.mealtracker/com.nicola.student.mealtracker.MainActivity}: java.lang.NumberFormatException: Invalid int: "70.0Cal"

问候语的值不能转换为int:“70.0Cal”。

因此,请删除suffic“Cal”,如果必须处理分数,请使用double而不是int。

要么value,要么greeting具有无法转换为int的值:“70.0Cal”。

因此,请删除suffic“Cal”,如果必须处理分数,请使用double而不是int。

要么value,要么greeting具有无法转换为int的值:“70.0Cal”。

因此,请删除suffic“Cal”,如果必须处理分数,请使用double而不是int。

要么value,要么greeting具有无法转换为int的值:“70.0Cal”。

因此,请删除suffic“Cal”,如果您必须处理分数,请使用double而不是int。您应该检查您的值字符串,您的异常告诉我字符串是“70.0Cal”。首先,你可以得到一个子串,如果你知道最后三个符号都是“Cal”

第二,您有一个十进制值,所以您应该使用not integer,您应该使用Float或double

此外,还应检查EditText中的文本是否为null或空:

     String edittextText = editText1.getText().toString();

     if(edittextText!=null && !edittextText.equals("")){
      //start calculating

     }

你应该检查你的值字符串,你的异常告诉我字符串是“70.0Cal”。首先,你可以得到一个子串,如果你知道最后三个符号都是“Cal”

第二,您有一个十进制值,所以您应该使用not integer,您应该使用Float或double

此外,还应检查EditText中的文本是否为null或空:

     String edittextText = editText1.getText().toString();

     if(edittextText!=null && !edittextText.equals("")){
      //start calculating

     }

你应该检查你的值字符串,你的异常告诉我字符串是“70.0Cal”。首先,你可以得到一个子串,如果你知道最后三个符号都是“Cal”

第二,您有一个十进制值,所以您应该使用not integer,您应该使用Float或double

此外,还应检查EditText中的文本是否为null或空:

     String edittextText = editText1.getText().toString();

     if(edittextText!=null && !edittextText.equals("")){
      //start calculating

     }

你应该检查你的值字符串,你的异常告诉我字符串是“70.0Cal”。首先,你可以得到一个子串,如果你知道最后三个符号都是“Cal”

第二,您有一个十进制值,所以您应该使用not integer,您应该使用Float或double

此外,还应检查EditText中的文本是否为null或空:

     String edittextText = editText1.getText().toString();

     if(edittextText!=null && !edittextText.equals("")){
      //start calculating

     }

查看提供的短堆栈跟踪,我可以看到您正在解析一个格式不正确的
字符串

您必须对字段进行一些验证,以确保提供的输入是有效的数值。您可以使用以下方法或通过设置EditText inputType
android:inputType=“number”

我建议不要在返回的值后面附加Cal。保持输入为数字。而是在
编辑文本
旁边的
文本视图中添加“Cal”值。
通过使用
isNumeric
方法在解析之前检查值来实现此功能

public void executeYourCode() {
    //Parse your values to Double 
    //as you are using Double values
    Double aValue =  getCheckedValue(value) ;
    Double bValue = getCheckedValue(greeting);

    count+= bValue;
    editText1.setText(String.valueOf(count));
}

public int getCheckedValue(String value) {
    if (value != null && !value.isEmpty() && isNumeric(value)) {
        return Double.parseDouble(value.trim());
    }

    return 0;
}

查看提供的短堆栈跟踪,我可以看到您正在解析一个格式不正确的
字符串

您必须对字段进行一些验证,以确保提供的输入是有效的数值。您可以使用以下方法或通过设置EditText inputType
android:inputType=“number”

我建议不要在返回的值后面附加Cal。保持输入为数字。而是在
编辑文本
旁边的
文本视图中添加“Cal”值。
通过使用
isNumeric
方法在解析之前检查值来实现此功能

public void executeYourCode() {
    //Parse your values to Double 
    //as you are using Double values
    Double aValue =  getCheckedValue(value) ;
    Double bValue = getCheckedValue(greeting);

    count+= bValue;
    editText1.setText(String.valueOf(count));
}

public int getCheckedValue(String value) {
    if (value != null && !value.isEmpty() && isNumeric(value)) {
        return Double.parseDouble(value.trim());
    }

    return 0;
}

查看提供的短堆栈跟踪,我可以看到您正在解析一个格式不正确的
字符串

您必须对字段进行一些验证,以确保提供的输入是有效的数值。您可以使用以下方法或通过设置EditText inputType
android:inputType=“number”

我建议不要在返回的值后面附加Cal。保持输入为数字。而是在
编辑文本
旁边的
文本视图中添加“Cal”值。
通过使用
isNumeric
方法在解析之前检查值来实现此功能

public void executeYourCode() {
    //Parse your values to Double 
    //as you are using Double values
    Double aValue =  getCheckedValue(value) ;
    Double bValue = getCheckedValue(greeting);

    count+= bValue;
    editText1.setText(String.valueOf(count));
}

public int getCheckedValue(String value) {
    if (value != null && !value.isEmpty() && isNumeric(value)) {
        return Double.parseDouble(value.trim());
    }

    return 0;
}

查看提供的短堆栈跟踪,我可以看到您正在解析一个格式不正确的
字符串

您必须对字段进行一些验证,以确保提供的输入是有效的数值。您可以使用以下方法或通过设置EditText inputType
android:inputType=“number”

我建议不要在返回的值后面附加Cal。保持输入为数字。而是在
编辑文本
旁边的
文本视图中添加“Cal”值。
通过使用
isNumeric
方法在解析之前检查值来实现此功能

public void executeYourCode() {
    //Parse your values to Double 
    //as you are using Double values
    Double aValue =  getCheckedValue(value) ;
    Double bValue = getCheckedValue(greeting);

    count+= bValue;
    editText1.setText(String.valueOf(count));
}

public int getCheckedValue(String value) {
    if (value != null && !value.isEmpty() && isNumeric(value)) {
        return Double.parseDouble(value.trim());
    }

    return 0;
}

请添加堆栈的堆栈跟踪error@Neil请参见上面的内容。请添加error@Neil请参见上面的内容。请添加error@Neil请参见上面的内容。请添加error@Neil请看上面。在我的证上