如果按下按钮时edittext部分为空,我想显示toast错误消息(Android Studio)



我在android studio中制作了一个简单的计算器应用程序,但当在edittext部分没有输入值时,该应用程序崩溃。当在edittext部分没有输入值时,我想显示一个toast消息。请检查这个问题,并指导我如何解决这个问题并添加吐司。这里n1和n2是edittext的id。

主要活动(代码(:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
n1 = findViewById(R.id.n1);
n2 = findViewById(R.id.n2);
add = findViewById(R.id.add);
sub = findViewById(R.id.sub);
multi = findViewById(R.id.multi);
div = findViewById(R.id.div);
tv = findViewById(R.id.tv);
// addition part
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int p,q,r;
p = Integer.parseInt(n1.getText().toString());
q = Integer.parseInt(n2.getText().toString());
r = p+q;
tv.setText("Result is " + r);
Toast.makeText(MainActivity.this, "Successfully Calculated", Toast.LENGTH_SHORT).show();
}
});
//subtraction part
sub.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int p,q,r;
p = Integer.parseInt(n1.getText().toString());
q = Integer.parseInt(n2.getText().toString());
r = p-q;
tv.setText("Result is " + r);
Toast.makeText(MainActivity.this, "Successfully Calculated", Toast.LENGTH_SHORT).show();
}
});
// multiplication part
multi.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int p,q,r;
p = Integer.parseInt(n1.getText().toString());
q = Integer.parseInt(n2.getText().toString());
r = p*q;
tv.setText("Result is " + r);
Toast.makeText(MainActivity.this, "Successfully Calculated", Toast.LENGTH_SHORT).show();
}
});
//divison part
div.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int p,q,r;
p = Integer.parseInt(n1.getText().toString());
q = Integer.parseInt(n2.getText().toString());
r = p/q;
tv.setText("Result is " + r);
Toast.makeText(MainActivity.this, "Successfully Calculated", Toast.LENGTH_SHORT).show();
}
});
}

}

在所有其他OnClickListner 中执行相同操作

add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int p,q,r;
if(!n1.getText().toString().equals("") && !n2.getText().toString().equals("")) {
p = Integer.parseInt(n1.getText().toString());
q = Integer.parseInt(n2.getText().toString());
r = (p + q);
Toast.makeText(MainActivity.this, "Successfully Calculated", Toast.LENGTH_SHORT).show();
tv.setText("Result is " + r);
}else {
Toast.makeText(MainActivity.this, "Error", Toast.LENGTH_SHORT).show();
}
}
});

您可以进行初步检查,看看是否有任何文本像一样输入

if(n1.getText()) ....

理想情况下,您应该使用try{}来包围ParseInt((。。catch{}块并处理那里的任何错误,以阻止应用程序崩溃。

int n1Value = n1.getText().toString();
int n2Value = n2.getText().toString();
p = n1Value !=null&&!n1Value.isEmpty()? Integer.parseInt(n1Value):0 
p = n2Value !=null&&!n2Value.isEmpty()? Integer.parseInt(n2Value):0 

将其添加到您的点击侦听器中。崩溃的发生是因为您没有任何空检查。

最新更新