我正在开发一个项目,但我添加了空的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>
答案 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发布堆栈跟踪以进行崩溃。它会准确地告诉您错误是什么。