Reputation: 469
Friends I searched a lot but didnt get answer of my question. I am trying to make an android calculator. A simple one , actually its just a single module of my bigger app...
In this firstly I need users to enter 1st and 2nd sunber and select if he would like to add, sub, mul, divide or get mod..Then there is a textview in which result would be displayed.
This is the code I am using :
Java code:
package com.droidacid.apticalc;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class numSys extends Activity{
EditText etnumber1;
EditText etnumber2;
Button badd;
Button bsub;
Button bmul;
Button bdiv;
Button bmod;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.numsys);
etnumber1 = (EditText) findViewById(R.id.number1);
etnumber2 = (EditText) findViewById(R.id.number2);
String number1 = etnumber1.getText().toString();
String number2 = etnumber2.getText().toString();
final Double number1D = Double.parseDouble(number1);
final Double number2D = Double.parseDouble(number2);
badd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
double resultD = number1D + number2D;
String result = "result :"+resultD;
TextView tvresult = (TextView) findViewById(R.id.tvresult);
tvresult.setText(result);
}
});
bsub.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
double resultD = number1D - number2D;
String result = "result :"+resultD;
TextView tvresult = (TextView) findViewById(R.id.tvresult);
tvresult.setText(result);
}
});
bmul.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
double resultD = number1D * number2D;
String result = "result :"+resultD;
TextView tvresult = (TextView) findViewById(R.id.tvresult);
tvresult.setText(result);
}
});
bdiv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
double resultD = number1D / number2D;
String result = "result :"+resultD;
TextView tvresult = (TextView) findViewById(R.id.tvresult);
tvresult.setText(result);
}
});
bmod.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
double resultD = number1D % number2D;
String result = "result :"+resultD;
TextView tvresult = (TextView) findViewById(R.id.tvresult);
tvresult.setText(result);
}
});
}
}
This is the logcat error :
05-04 10:24:18.098: E/AndroidRuntime(1321): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.droidacid.apticalc/com.droidacid.apticalc.numSys}: java.lang.NumberFormatException:
Please dont rate this post as negative. I am just trying to learn and trying to solve this issue since last more than 24 hours. Tried everything posted on Stack Overflow.
Thanks
Upvotes: 0
Views: 159
Reputation: 1
at android.app.ApplicationPackageManager.getResourcesForApplication(ApplicationPackageManager.java:1764)
at android.app.ApplicationPackageManager.getResourcesForApplication(ApplicationPackageManager.java:1750)
at android.app.ApplicationPackageManager.getDrawable(ApplicationPackageManager.java:1519)
at android.app.ApplicationPackageManager.loadUnbadgedItemIcon(ApplicationPackageManager.java:3106)
at android.content.pm.PackageItemInfo.loadUnbadgedIcon(PackageItemInfo.java:301)
at com.android.systemui.toast.SystemUIToast.getBadgedIcon(SystemUIToast.java:307)
at com.android.systemui.toast.SystemUIToast.inflateToastView(SystemUIToast.java:209)
at com.android.systemui.toast.SystemUIToast.<init>(SystemUIToast.java:92)
at com.android.systemui.toast.SystemUIToast.<init>(SystemUIToast.java:79)
at com.android.systemui.toast.ToastFactory.createToast(ToastFactory.java:78)
at com.android.systemui.toast.ToastUI.lambda$showToast$0$ToastUI(ToastUI.java:113)
at com.android.systemui.toast.-$$Lambda$ToastUI$w_gPCh3F8Xxn1jN4lkQZoUci71c.run(Unknown Source:16)
at com.android.systemui.toast.ToastUI.showToast(ToastUI.java:140)
at com.android.systemui.statusbar.CommandQueue$H.handleMessage(CommandQueue.java:1474)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:241)
at android.os.Looper.loop(Looper.java:342)
at android.app.ActivityThread.main(ActivityThread.java:8143)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:583)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1045)
2024-06-10 19:10:01.238 11289-11341 OpenGLRenderer com.example.mysimplequizapplication E EglManager::makeCurrent mED = 0xb400007100f0df90, s
Upvotes: 0
Reputation: 5980
This might be your problem:
String number1 = etnumber1.getText().toString();
String number2 = etnumber2.getText().toString();
final Double number1D = Double.parseDouble(number1);
final Double number2D = Double.parseDouble(number2);
You're trying to parse an, at this point, empty EditText into a Double value. Either that, or you have some default text in the EditText that you're trying to parse.
This (probably) causes the NumberFormatException.
Upvotes: 1
Reputation: 157447
final Double number1D = Double.parseDouble(number1);
final Double number2D = Double.parseDouble(number2);
the exception means that number1
or number2
can not be converted to double
. Try to trim
the number1 and number2 string
Upvotes: 0