Android编码错误
我是android/java编程的初学者。我下面的程序崩溃了 currkm=Double.parseDoublecurrentkm.getText.toString;。我试图解决这个问题,但没能解决。我相信这是安卓系统的一个基本编码错误。 提供解决此问题的建议Android编码错误,android,Android,我是android/java编程的初学者。我下面的程序崩溃了 currkm=Double.parseDoublecurrentkm.getText.toString;。我试图解决这个问题,但没能解决。我相信这是安卓系统的一个基本编码错误。 提供解决此问题的建议 package com.example.my2app; import android.os.Bundle; import android.app.Activity; import android.content.SharedPrefer
package com.example.my2app;
import android.os.Bundle;
import android.app.Activity;
import android.content.SharedPreferences;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
double vehiclemileage;
TextView mileage;
SharedPreferences somedata;
SharedPreferences.Editor editor;
TextView previouskm;
EditText currentkm;
EditText petrollitrs;
double currkm;
double prevkm;
double petrollt;
Button resultbtn;
String previouskmstr;
String prevkmstring;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mileagecalc);
somedata= this.getBaseContext().getSharedPreferences("sakthivel",0);
editor = somedata.edit();
previouskm = (TextView)findViewById(R.id.previouskm);
currentkm = (EditText)findViewById(R.id.currentkm);
petrollitrs = (EditText)findViewById(R.id.petroLtr);
mileage = (TextView)findViewById(R.id.mileage);
previouskmstr = somedata.getString("previousmileage", null);
previouskm.setText(previouskmstr);
resultbtn = (Button)findViewById(R.id.button1);
resultbtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
// TODO Auto-generated method stub
try{
currkm = (Double.parseDouble(currentkm.getText().toString()));
prevkm = (Double.parseDouble(previouskm.getText().toString()));
petrollt = (Double.parseDouble(petrollitrs.getText().toString()));
vehiclemileage = (currkm-prevkm)/petrollt;
prevkmstring = currentkm.getText().toString();
mileage.setText("your vehicle mileage is " + vehiclemileage);
editor.putString("previousmileage", prevkmstring);
editor.commit();
previouskm.setText(prevkmstring);
}
catch(NumberFormatException e){
e.printStackTrace();
}
}
});
}
}
日志类别:
11-13 12:52:27.671: E/JavaBinder(661): *** Uncaught remote exception! (Exceptions are not yet supported across processes.)
11-13 12:52:27.671: E/JavaBinder(661): java.lang.RuntimeException: android.os.DeadObjectException
11-13 12:52:27.671: E/JavaBinder(661): at android.os.Parcel.writeException(Parcel.java:1332)
11-13 12:52:27.671: E/JavaBinder(661): at android.os.Binder.execTransact(Binder.java:391)
一些可能性:
我假设您已将输入类型设置为仅数字,如果没有,请尝试
edit.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL | InputType.TYPE_NUMBER_FLAG_SIGNED);
或者从XML中,您可以在EditText中添加android:inputType=number | decimal
它将抛出java.lang.NumberFormatException:这将表明应用程序试图将字符串转换为一种数值类型,但该字符串没有适当的格式
所以,如果您正在尝试,就不能解析或强制转换字符串为double。否则,您的代码在语法上是正常的
如果您正处于强制关闭状态,请在{}内编写代码,并尝试{}&catchexception e{}。这将忽略您的错误,并且不会关闭您的应用程序。您可以发布您的logcat错误消息和mileagecalc.xml布局文件吗。currkm edittext中有什么文本?您好,已将输入类型定义为inputDecimal。但我还是得到了这个问题。粘贴在您获得的日志下方&这是由于您的首选代码。尝试