Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 向片段中的EditText添加验证_Android - Fatal编程技术网

Android 向片段中的EditText添加验证

Android 向片段中的EditText添加验证,android,Android,我正在尝试将验证添加到Fragment中的EditText,但我的应用程序正在崩溃。我试图用getActivity()来代替这个仍然面临同样问题的方法 import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.support.v4.app.Fragment; import android.util.Patterns; import android.vi

我正在尝试将验证添加到
Fragment
中的
EditText
,但我的应用程序正在崩溃。我试图用
getActivity()
来代替这个仍然面临同样问题的方法

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Patterns;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.basgeekball.awesomevalidation.AwesomeValidation;
import com.basgeekball.awesomevalidation.ValidationStyle;

public class TestFragment extends Fragment implements View.OnClickListener{

    EditText ET_input_first_name, ET_input_last_name, ET_input_email, ET_input_contact, ET_comments;
    String   first_name, last_name, email , contact , comments;

    private Button buttonSubmit;
    private AwesomeValidation awesomeValidation;

    public TestFragment() {
        // Required empty public constructor
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

        View view = null;
        view = inflater.inflate(R.layout.fragment_test, container, false);

        ET_input_first_name = (EditText)view.findViewById(R.id.input_first_name);
        ET_input_last_name = (EditText)view.findViewById(R.id.input_last_name);
        ET_input_email = (EditText)view.findViewById(R.id.input_email);
        ET_input_contact = (EditText)view.findViewById(R.id.input_contact);
        ET_comments = (EditText)view.findViewById(R.id.comments);

        awesomeValidation = new AwesomeValidation(ValidationStyle.BASIC);
        buttonSubmit = (Button)view.findViewById(R.id.btn_test_drive);

        //adding validation to edittexts
        awesomeValidation.addValidation(this , R.id.input_first_name, "^[A-Za-z\\s]{1,}[\\.]{0,1}[A-Za-z\\s]{0,}$", R.string.nameerror);
        awesomeValidation.addValidation(this, R.id.input_last_name, "^[A-Za-z\\s]{1,}[\\.]{0,1}[A-Za-z\\s]{0,}$", R.string.nameerror);
        awesomeValidation.addValidation(this, R.id.input_email, Patterns.EMAIL_ADDRESS, R.string.nameerror);
        awesomeValidation.addValidation(this, R.id.input_contact, "^[2-9]{2}[0-9]{8}$", R.string.nameerror);

        buttonSubmit.setOnClickListener(this);

        return view;
    }
    private void submitForm() {
        if (awesomeValidation.validate()) {
            Toast.makeText(getActivity(), "Validation Successfull", Toast.LENGTH_LONG).show();
        }
    }
    @Override
    public void onClick(View view) {
        submitForm();
    }
}

要做到这一点,有两种方法:在片段中使用此代码

1)
EditText et=getActivity().findViewById(R.id.EditText)


2) 将您的edittext
设置为公共静态
,并仅在活动中初始化它。然后要在片段中使用,只需编写
YourActivity.edittext.getText().toString()
。它会工作的

是的,如果需要调试崩溃的帮助,请添加堆栈跟踪。使用我的手机调试应用程序,如何从中获取logcat。我在活动中尝试了上面的方法,但是在片段中它崩溃了。你能发布你的addValidation方法吗?你的logcat也会很有帮助