Member 14477967 Ответов: 1

Android: как использовать класс проверки ввода?


Я создаю приложение, в котором я сделал класс проверки, но когда я запускаю эти коды, он выдает мне ошибку, поэтому я не знаю, правильно ли это делать проверку внутри класса, может ли кто-нибудь мне помочь.

Вот исходный код класса InputValidation

Что я уже пробовал:

public class InputValidation {
    // Show Validation
     if (validate()){

        // Get values from edit text fields.

        String GoingAbroad = check_date.getText().toString();
        String types = LeaveType1.getSelectedItem().toString();
        String leaves = LeaveType2.getSelectedItem().toString();
        String reason = Days1.getText().toString();
        String noOfDays = ExpStDt.getText().toString();
        String days = ExpEndDt.getText().toString();
        String date = ReqType.getSelectedItem().toString();
        String startDate = Status.toString();
        String endDate = Status.toString();
    }
    // This method is used to validate input given by user
    private boolean validate() {
        boolean valid = false;
        // Get values from editText fields
        String GoingAbroad = GoingAbroad.getText().toString();
        String types = types.getSelectedItem().toString();
        String leaves = Leaves.getSelectedItem().toString();
        String noOfDays = noOfDays.getText().toString();
        String reason = startDate.getText().toString();
        String date = ExpEndDt.getText().toString();
        String startDate = startDate.getText().toString();
        String endDate = endDate.getText().toString();

        // Handling validation for User Name field.

        if (leaves.isEmpty()){
            valid = false;
            Leaves.setError("Please Choose your Type of Leave No 1");

        } else {
            valid = true;
            Leaves.setError(null);
        }
       

        if (noOfDays.isEmpty()) {
            valid = false;
            noOfDays.setError("Please enter the No. days for Leave Type 1");

        } else {
            valid = true;
            noOfDays.setError(null);
        }
        if (startDate.isEmpty()) {
            valid = false;
            startDate.setError("Please Enter The Expected Date Where you want to start Your leave");

        } else {

            valid = true;
            startDate.setError(null);
        }
        if (endDate.isEmpty()) {
            valid = false;
            endDate.setError("Please Enter the Expected Date Where you want to End Your leave");

        } else {
            valid = true;
            endDate.setError(null);
        }
        
        if (types.isEmpty()) {
            valid = false;
            types.setError("Please enter the Payment option you want");

        } else {
            valid = true;
            types.setError(null);
        }

        // Check validation for end date that is greater or less than start date
        SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");

        try {
            if(sdf.parse(startDate).before(sdf.parse(startDate)))
            {
                valid = true;//If start date is before end date
                startDate.setError(null);

            }
            else if(sdf.parse(startDate).equals(sdf.parse(endDate)))
            {
                valid = false;//If two dates are equal
                startDate.setError("The start date should not be same with end date");
                endDate.setError("The End Date should not be same as Start Date");
            }
            else if (sdf.parse(startDate).before(sdf.parse(endDate)))
            {
                valid = false; //If start date is after the end date
                endDate.setError("The End Date should not be less than Start Date");

            }
        } catch (Exception e) {
            e.printStackTrace();
        }


        return valid;
    }

Richard MacCutchan

"когда я запускаю эти коды, это дает мне ошибку"
Что дает вам ошибку, и каковы детали ошибки?

Member 14477967

У меня есть (ошибка: класс, интерфейс или перечисление ожидаются) Это то, что дает мне

1 Ответов

Рейтинг:
0

Richard MacCutchan

if(sdf.parse(startDate).before(sdf.parse(startDate)))
{
    valid = true;//If start date is before end date
    startDate.setError(null);
    
}

Это не выглядит правильным.


Member 14477967

Тогда как же мне это сделать?

Richard MacCutchan

Вы не можете поместить операторы на уровне класса, они должны быть частью метода:

public class InputValidation {
// there must be a method here which contains the if block
    // Show Validation
     if (validate()){


Видеть След: изучение языка Java (учебные пособия Java™ )[^].

David Crow

Посмотри на код. Вы сравниваете дату начала с самой собой (но комментарий говорит об обратном).