我创建了一个添加两个数字的应用程序但是当编辑文本为空时按下按钮的应用程序一直停止

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我创建了一个添加两个数字的应用程序但是当编辑文本为空时按下按钮的应用程序一直停止相关的知识,希望对你有一定的参考价值。

这是我的代码,但是当我按下按钮而不给数字应用程序整天停止时请告诉我我能为此做些什么代码如下

公共类MainActivity扩展Activity {TextView结果;

EditText editText1, editText2;
Button btnadd;


@Override

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);






             editText1 = (EditText) findViewById(R.id.editText1);
             editText2 = (EditText) findViewById(R.id.editText2);
             btnadd = (Button) findViewById(R.id.btnadd);
             result = (TextView) findViewById(R.id.textviewresult);


             btnadd.setOnClickListener(new View.OnClickListener()




             {
                 @Override
                 public void onClick(View view) {








                     int a = Integer.parseInt(editText1.getText().toString());
                     int b = Integer.parseInt(editText2.getText().toString());

                     int add = a + b;



                     result.setText("Answer: " + String.valueOf(add));


             }
             });
答案

试试这个,也限制编辑文本只允许数字..

`````````````````
int a = 0;
int b = 0;

if(!editText1.getText().toString().trim().equalsIgnoreCase(""))
    a = Integer.parseInt(editText1.getText().toString());
if(!editText2.getText().toString().trim().equalsIgnoreCase(""))
    b = Integer.parseInt(editText2.getText().toString());

int add = a + b;
result.setText("Answer: " + String.valueOf(add));
```````````````````````
另一答案

问题是Integer.parseInt无法解析空字符串

error message

所以我查了一下

Check if EditText is empty.

我修改了你的代码

public class MainActivity extends AppCompatActivity {

TextView result;
EditText editText1, editText2;
Button btnadd;

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

    editText1 = (EditText) findViewById(R.id.editText1);
    editText2 = (EditText) findViewById(R.id.editText2);
    btnadd = (Button) findViewById(R.id.btnadd);
    result = (TextView) findViewById(R.id.textviewresult);


    btnadd.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            int a;
            int b;
            if (editText1.getText().toString().matches("")) {

                a=0;
            } else{
             a = Integer.parseInt(editText1.getText().toString());
            }

            if (editText2.getText().toString().matches("")) {
                b = 0;
            }else {
                b = Integer.parseInt(editText2.getText().toString());
            }

            int add = a + b;


            result.setText("Answer: " + String.valueOf(add));


        }

    });
}

}

另一答案
private void intiView() {
    edt1 = findViewById(R.id.edt1);
    edt2 = findViewById(R.id.edt2);
    btnSum = findViewById(R.id.btnSum);
    txtAns=findViewById(R.id.txtAns);
    btnSum.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (!edt1.getText().toString().isEmpty() && !edt2.getText().toString().isEmpty()) {
                sum = Integer.parseInt(edt1.getText().toString()) + Integer.parseInt(edt2.getText().toString());
                Toast.makeText(Main2Activity.this, "Sum of two nos: " + sum, Toast.LENGTH_LONG).show();
                txtAns.setText(""+sum);
            } else if (edt1.getText().toString().isEmpty()) {
                edt1.setError("Please enter no1 ");
            } else if (edt2.getText().toString().isEmpty()) {
                edt2.setError("Please enter no2 ");

            }
        }
    });
}

以上是关于我创建了一个添加两个数字的应用程序但是当编辑文本为空时按下按钮的应用程序一直停止的主要内容,如果未能解决你的问题,请参考以下文章

将输入文本定义为Flash中的数字输入

删除 doOnTextChanged 上的文本会删除我以编程方式设置的编辑文本的特殊格式

windows程序单行文本编辑框的添加

在 Flash 中将输入文本定义为数字输入

如何检查edittext是不是为空?

将自定义 BarButtonItem 添加到顶部导航栏