空编辑文本给出0值的错误

时间:2014-08-02 06:47:20

标签: java android

我正在开发一个项目,但我添加了空的EditText(未使用)。如果我在editText中输入一个数字,然后单击按钮,它将在viewtext中显示输出(这是正确的),如果你继续这样做,数字将被添加到总数中。

但是!!如果我单击按钮而不在我的edittext中输入任何数字。项目将崩溃显示项目已经停止!

我想要的是:如果我只是点击按钮而不输入任何数字,则0将被添加到总数中。例如...>>按钮>> 5 + 0 = 5表示总计5>> 6>>按钮>> 6 + 5 = 11>> 0>>按钮>> 0 + 11 = 11(<< KEY)

我的代码

MyActivity.java

    package b3du.im.myapplication;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;


public class MyActivity extends ActionBarActivity {


    int total = 0;

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

    public void Add(View v){

        TextView text1 =  (TextView) findViewById(R.id.text1);
        EditText  text2 =  (EditText) findViewById(R.id.text2);


        int valueText2 = Integer.parseInt(text2.getText().toString());

        total= Integer.parseInt(text1.getText().toString());

        total += valueText2;

        text1.setText(Integer.toString(total));

        text2.setText("");

    }

}

activity_my.xml

<LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:gravity="center"
   >

    <TextView
        android:layout_width="50dp"
        android:layout_height="wrap_content"
        android:inputType="phone"
        android:ems="10"
        android:id="@+id/text1"
        android:layout_marginTop="20dp"
        android:layout_marginBottom="20dp"
        android:text="0"
        android:textSize="30dp"
        android:gravity="center" />

    <EditText
        android:layout_width="50dp"
        android:layout_height="wrap_content"
        android:inputType="number"
        android:ems="10"
        android:id="@+id/text2"
        android:layout_marginTop="20dp"
        android:layout_marginBottom="20dp"
        android:hint="0"
        android:gravity="center" />

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Add"
        android:id="@+id/button"
        android:layout_gravity="center_horizontal"
        android:onClick="Add" />
</LinearLayout>

2 个答案:

答案 0 :(得分:1)

如果你什么都没输入,你就会得到一个空白 text2.getText().toString(),你得到一个NumberFormatException。

如果没有输入文本,你应该将`valueText2设置为0:

int valueText2 = 0;

if (text2.getText() != null && !text2.getText().toString().equals("")){
   int valueText2 = Integer.parseInt(text2.getText().toString());

答案 1 :(得分:0)

int valueText2 = Integer.parseInt(text2.getText().toString());

如果字符串为空,parseInt将抛出异常。你需要先检查它是否为空,而不是vall parseInt。

此外,将来总是从logcat发布堆栈跟踪以进行崩溃。它会准确地告诉您错误是什么。