जब संपादन टेक्स्ट खाली होता है और बटन क्लिक किया जाता है तो मैं टोस्ट प्रदर्शित करने का प्रयास कर रहा हूं।

बटन क्लिक करने पर ऐप क्रैश हो जाता है।

मैं संभवतः क्या गलत कर रहा हूँ? कृपया इसमें मेरी मदद करें क्योंकि मैं मोबाइल ऐप डेवलपमेंट में नया हूं। इसे करने के लिए मुझे कहां बदलाव करने की जरूरत है या क्या सुधार करना है? किसी भी मदद की सराहना की जाती है।

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

public class EmployeeActivity extends AppCompatActivity {

    EditText hourlyWage, totalRegularHours, totalOvertimeHours;
    Button btnCalculate;
    TextView result;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.employee_activity);
        hourlyWage = findViewById(R.id.et_hourlyWage);
        totalRegularHours = findViewById(R.id.et_totalRegularHours);
        totalOvertimeHours = findViewById(R.id.et_totalOvertimeHours);
        btnCalculate = findViewById(R.id.btnCalculate);
        result = (TextView) findViewById(R.id.tv_Result);
    }

    // method to be called on onClick
    public void calculateResult(View view) {
        double regularHours = Integer.parseInt(totalRegularHours.getText().toString());
        double overtimeHours;
        overtimeHours = Integer.parseInt(totalOvertimeHours.getText().toString());
        // check if EditText is empty
        if (hourlyWage.getText().toString().trim().equals("")) {
            Toast.makeText(this, "Please Enter The Value.", Toast.LENGTH_LONG).show();
        }
        // check if EditText is empty
        else if (totalRegularHours.getText().toString().trim().equals("")) {
            Toast.makeText(this, "Please Enter The Value.", Toast.LENGTH_LONG).show();
        }
        // check if EditText is out of range
        else if (regularHours <= 0 && regularHours >= 40) {
            Toast.makeText(this, "Please Enter The Value of Hours Between 0 to 40.", Toast.LENGTH_LONG).show();
        }
        // check if EditText is out of range
        else if (overtimeHours <= 0 && overtimeHours >= 30) {
            Toast.makeText(this, "Please Enter The Value of Hours Between 0 to 30.", Toast.LENGTH_LONG).show();
        }
        // calculates the answer
        else if (regularHours >= 0 && regularHours <= 40) {
            // formula for calculation
            double regularWage;
            regularWage = (Integer.parseInt(hourlyWage.getText().toString()) * Integer.parseInt(totalRegularHours.getText().toString())) + (Integer.parseInt(totalOvertimeHours.getText().toString()) * Integer.parseInt(hourlyWage.getText().toString()) * (1.5));
            //displays the result in a TextView
            result.setText(String.valueOf(regularWage));
        }
    }
}
1
Shahroz 10 25 पद 2019, 01:59

2 जवाब

सबसे बढ़िया उत्तर

आप एक खाली स्ट्रिंग के साथ Integer.parseInt के साथ पार्स कर रहे हैं। साथ ही, आप एक पूर्णांक को एक भिन्न प्रकार - डबल में संग्रहीत कर रहे हैं। यहाँ आपका फिक्स है:

// method to be called on onClick
    public void calculateResult(View view) {

// check if EditText is empty
        if (hourlyWage.getText().toString().isEmpty()){
            Toast.makeText(this, "Please Enter The Value.", Toast.LENGTH_LONG).show();
            return;
        }
// check if EditText is empty
        if(totalRegularHours.getText().toString().isEmpty())
        {
           Toast.makeText(this, "Please Enter The Value.", Toast.LENGTH_LONG).show();
           return;
        }

        int regularHours = Integer.parseInt(totalRegularHours.getText().toString());

        int overtimeHours;
        overtimeHours = Integer.parseInt(totalOvertimeHours.getText().toString());

// check if EditText is out of range
        if (regularHours <= 0 && regularHours >= 40) {

            Toast.makeText(this, "Please Enter The Value of Hours Between 0 to 40.", Toast.LENGTH_LONG).show();

        }
// check if EditText is out of range
        else if (overtimeHours <= 0 && overtimeHours >= 30) {

            Toast.makeText(this, "Please Enter The Value of Hours Between 0 to 30.", Toast.LENGTH_LONG).show();

        }
// calculates the answer
        else if(regularHours >= 0 && regularHours <= 40) {
// formula for calculation
          double regularWage;
          regularWage = (Integer.parseInt(hourlyWage.getText().toString()) * Integer.parseInt(totalRegularHours.getText().toString())) + (Integer.parseInt(totalOvertimeHours.getText().toString()) * Integer.parseInt(hourlyWage.getText().toString()) * (1.5));
//displays the result in a TextView
          result.setText(String.valueOf(regularWage));
        }


    }
0
Christilyn Arjona 24 पद 2019, 23:09

आप जांच सकते हैं कि EditText खाली है या TextUtils वर्ग का उपयोग निम्न के रूप में नहीं कर रहा है:

if(TextUtils.isEmpty(yourEditText.getText().toString())) {
    Toast.makeText(this, "Edit text is empty", Toast.LENGTH_SHORT).show();
    return;
}
0
Mouaad Abdelghafour AITALI 24 पद 2019, 23:11