没有文字时应用程序崩溃! 我不知道'如果'解决这个问题! 谢谢你
enter TextView TotalTextView;
EditText EnterPercentage;
EditText EnterPrice;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TotalTextView = (TextView) findViewById(R.id.TotalTextView);
EnterPercentage = (EditText) findViewById(R.id.EnterPercentage);
EnterPrice = (EditText) findViewById(R.id.EnterPrice);
Button CalcBtn = (Button) findViewById(R.id.CalcBtn);
CalcBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
float percentage = Float.parseFloat(EnterPercentage.getText().toString());
float prix = Float.parseFloat(EnterPrice.getText().toString());
float dec = percentage / 100;
float total = prix - dec * Float.parseFloat(EnterPrice.getText().toString());
TotalTextView.setText(String.format("%.2f", total));
}
});
感谢您的回答,我是个乞丐所以......谢谢!
if (EnterPercentage.getText().equals("")) {
float percentage = Float.parseFloat(EnterPercentage.getText().toString());
float prix = Float.parseFloat(EnterPrice.getText().toString());
float dec = percentage / 100;
float total = prix - dec * Float.parseFloat(EnterPrice.getText().toString());
TotalTextView.setText(String.format("%.2f", total));
} else {
}
按钮除了应用程序没有崩溃之外什么都不做
答案 0 :(得分:4)
我们检查字符串的长度...当它为0时,我们什么都不做。当String> 0你的代码正在运行。
像:
if (EnterPercentage.getText().trim().toString().length() == 0 || EnterPrice.getText().toString().length() == 0 ) {
//Textfields are empty.
Log.d("Error","Fields are empty");
} else {
//Textfield is full
float percentage = Float.parseFloat(EnterPercentage.getText().toString());
float prix = Float.parseFloat(EnterPrice.getText().toString());
float dec = percentage / 100;
float total = prix - dec * Float.parseFloat(EnterPrice.getText().toString());
TotalTextView.setText(String.format("%.2f", total));
}
答案 1 :(得分:3)
你需要检查(显然)你的字符串。您的代码缺失的 if 是:
if (TextUtils.isEmpty(EnterPercentage.getText()) || TextUtils.isEmpty(EnterPrice.getText())) {
// YOUR CODE
}
Android开发运气好。 问题已经发布
答案 2 :(得分:1)
你肯定有一个NullPointerException。那是因为文字是null
,而你放了一个.toString()
。
试试这个:
float percenteage = 0;
float prix = 0;
if (EnterPercentage.getText() != null)
percenteage = Float.parseFloat(EnterPercentage.getText().toString());
if (EnterPrice.getText() != null)
prix = Float.parseFloat(EnterPercentage.getText().toString());
答案 3 :(得分:0)
在尝试转换为float之前需要验证
float percentage = getFloat();
private float getFloat(){
float fRet = 0.0f;
if(your validation here){
fRet = Float.parseFloat(EnterPercentage.getText().toString());;
}
return fRet;
}