我想在Edittext中添加验证。我正在粘贴一些代码。
实际上,我只想要简单的验证(该字段不能为空)。我创建了将近10个edittext和1个微调器。

package com.example.ncaputtarakhand;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;

import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;

public class ComplainFragment extends Fragment {
    EditText Name, Mobile, Email, Adhar, ComplainRelated, Complain, Locality, Landmark, Pincode, Username;
    Button btn;
    Spinner spinner;

    DatabaseReference reff;
    Complain complain;

    @Nullable
    @Override
    public View onCreateView(@NonNull final LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_complain, container, false);

        Name = (EditText) view.findViewById(R.id.name);
        Mobile = (EditText) view.findViewById(R.id.mobile);
        Email = (EditText) view.findViewById(R.id.email);
        Adhar = (EditText) view.findViewById(R.id.adhar);
        ComplainRelated = (EditText) view.findViewById(R.id.related);
        Complain = (EditText) view.findViewById(R.id.complainhere);
        Locality = (EditText) view.findViewById(R.id.location);
        Landmark = (EditText) view.findViewById(R.id.landmark);
        Pincode = (EditText) view.findViewById(R.id.pincode);
        Username = (EditText) view.findViewById(R.id.username);
        spinner = (Spinner) view.findViewById(R.id.spin);
        btn = (Button) view.findViewById(R.id.buttonsend);

        complain = new Complain();
        reff = FirebaseDatabase.getInstance().getReference().child("Complain");
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                complain.setName(Name.getText().toString().trim());
                complain.setNumber(Mobile.getText().toString().trim());
                complain.setEmail(Email.getText().toString().trim());
                complain.setAdharNo(Adhar.getText().toString().trim());
                complain.setComplainRelated(ComplainRelated.getText().toString().trim());
                complain.setComplain(Complain.getText().toString().trim());
                complain.setLocality(Locality.getText().toString().trim());
                complain.setLandmark(Landmark.getText().toString().trim());
                complain.setPincode(Pincode.getText().toString().trim());
                complain.setUsername(Username.getText().toString().trim());
                complain.setSpinner(spinner.getSelectedItem().toString().trim());
                reff.push().setValue(complain);
                Toast.makeText(ComplainFragment.super.getContext(), "Complain Register Successfully", Toast.LENGTH_LONG).show();
            }
        });

        Spinner spinner = (Spinner) view.findViewById(R.id.spin);

        // Creating an Array Adapter to populate the spinner with the data in the string resources
        ArrayAdapter<CharSequence> spinnerAdapter = ArrayAdapter.createFromResource(getContext(), R.array.locationn, android.R.layout.simple_spinner_item);
        // Specify the layout to use when the list of choices appears
        spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        // Apply the adapter to the spinner
        spinner.setAdapter(spinnerAdapter);
        ///database

        return view;
    }
}

最佳答案

将您的onClick方法更改为:

public void onClick(View v) {
    if(inputIsValid()) {
        ...
    }
}


将该方法的所有当前内容移到上方的大括号中。

创建您的新方法:

private boolean inputIsValid() {
    if(Email == null || Email.getText().toString().trim().length() < 7 || !EmailValidator.getInstance(false).isValid(Email.getText().toString().trim())) {
        Toast.makeText(getContext(), "Please enter a valid email address.", Toast.LENGTH_LONG).show();
        return false;
    }
    if(Username ... ) {
        Toast ...
        return false;
    }
    return true;
}


如果所有true内容均可接受,则仅应返回EditText

提出原因后,如果内容不可接受,请逐个通过EditText返回false。

10-08 13:34
查看更多