如何在String为空时停止应用程序崩溃

时间:2016-10-21 21:09:20

标签: java android crash

没有文字时应用程序崩溃! 我不知道'如果'解决这个问题! 谢谢你

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 {

}

按钮除了应用程序没有崩溃之外什么都不做

4 个答案:

答案 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;
}