平均值计算器致命异常

Average calculator Fatal Exception

我真的是编程新手。我正在尝试 运行 一个简单的平均计算器并获得一个强制关闭,这就是 logcat 所显示的。我是 运行ning android 工作室版本 2.3.3

FATAL EXCEPTION: main
Process: com.vu.gradingapp, PID: 6312
java.lang.NumberFormatException: For input string: ""
    at java.lang.Integer.parseInt(Integer.java:620)
    at java.lang.Integer.valueOf(Integer.java:794)
    at com.vu.gradingapp.AverageActivity.onClick(AverageActivity.java:37)
    at android.view.View.performClick(View.java:6219)
    at android.view.View$PerformClick.run(View.java:24482)
    at android.os.Handler.handleCallback(Handler.java:769)
    at android.os.Handler.dispatchMessage(Handler.java:98)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:6540)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

我使用的代码如下

public class AverageActivity extends AppCompatActivity {
EditText editmanner, editinstances, editshortstance, editstrikes, editboxingskills, editknocks, editkicks, editResults;
Button btnResults;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.average_page);
    editmanner =(EditText)findViewById(R.id.editText8);
    editinstances =  (EditText)findViewById(R.id.editText9);
    editshortstance = (EditText)findViewById(R.id.editText10);
    editstrikes = (EditText)findViewById(R.id.editText11);
    editboxingskills = (EditText)findViewById(R.id.editText12);
    editknocks = (EditText)findViewById(R.id.editText13);
    editkicks = (EditText)findViewById(R.id.editText14);
    editResults = (EditText)findViewById(R.id.editText15);
    btnResults = (Button) findViewById(R.id.button10);
    btnResults.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
    int first, second, third, fourth, fifth, sixth, seventh, results;
    first=Integer.valueOf(editmanner.getText().toString());
    second=Integer.valueOf(editinstances.getText().toString());
    third=Integer.valueOf(editshortstance.getText().toString());
    fourth=Integer.valueOf(editstrikes.getText().toString());
    fifth=Integer.valueOf(editboxingskills.getText().toString());
    sixth=Integer.valueOf(editknocks.getText().toString());
    seventh=Integer.valueOf(editkicks.getText().toString());
    results=(first+second+third+fourth+fifth+sixth+seventh)/7;
    editResults.setText(String.valueOf(results));
}
    });


}
public void knowtheresults (View view) {
    String button_text;
    button_text = ((Button) view).getText().toString();
    if (button_text.equals("Summary")) {
        Intent intent = new Intent(this, ResultActivity.class);
        startActivity(intent);
    } else if (button_text.equals("Back")) {
        Intent intent = new Intent(this, MainActivity.class);
        startActivity(intent);

我哪里做错了:D

谢谢大家

错误提示您无法将“”值转换为数字它是 java.lang.NumberFormatException。所以使用 0 而不是 number is blank 首先检查 edittext 是否为空而不是将其值设置为 0

int first;
if(editmanner.getText().toString().equals("")){
first = 0
}else{
first = Integer.valueOf(editmanner.getText().toString());
}

对所有 int 变量执行此操作。

java.lang.NumberFormatException Thrown to indicate that the application has attempted to convert a string to one of the numeric types, but that the string does not have the appropriate format.

logcat 已经说明了崩溃的原因。您的 EditText 中的一个或全部为空字符串。要将字符串转换为整数,字符串必须是数字(0、1、2 等)。您需要为 EditText 设置数值(例如:0)。

更新您的代码,对每个 int 变量进行此类验证:

if (editmanner().toString().isEmpty())
   first = 0;
else
   first = Integer.parseInt(editmanner().toString());

因为你有 int 个变量(不是 Integer)所以最好使用 parseInt 而不是 valueOf

谢谢大家,我刚刚用 (0) 填充了文本编辑,现在正在工作。请为我愚蠢的问题道歉。

有什么方法可以在 textview 上隐藏这个零,以便它显示空白。