验证:登录表单:我可以验证电子邮件:如果有错误,它不应该转到下一页。
但是,有一个领域。图像视图。我从画廊里挑选了一张图片,并将其设置为图像视图。也不存在任何问题。
当Imageview中没有图像时,应该会出现错误,因为没有图像,这就像电子邮件验证一样。如何像登录验证一样验证Imageview
不应该移到下一页..。
..How是可能的。有什么帮助吗?谢谢已经提前了。我可以用下面的代码成功地验证,比如我想要的Imageview。
enter code here
public class MainActivity extends AppCompatActivity
implements View.OnClickListener {
//The view objects
private EditText editTextName, editTextEmail, editTextMobile,
editTextDob, editTextAge;
private Button buttonSubmit;
//defining AwesomeValidation object
private AwesomeValidation awesomeValidation;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//initializing awesomevalidation object
/* awesomeValidation.addValidation(this, R.id.editTextName, "^[A-Za-z\\s]{1,}[\\.]{0,1}[A-Za-z\\s]{0,}$", R.string.nameerror);
* The library provides 3 types of validation
* BASIC
* COLORATION
* UNDERLABEL
* */
awesomeValidation = new AwesomeValidation(ValidationStyle.BASIC);
//initializing view objects
editTextName = (EditText) findViewById(R.id.editTextName);
editTextEmail = (EditText) findViewById(R.id.editTextEmail);
editTextMobile = (EditText) findViewById(R.id.editTextMobile);
editTextDob = (EditText) findViewById(R.id.editTextDob);
editTextAge = (EditText) findViewById(R.id.editTextAge);
buttonSubmit = (Button) findViewById(R.id.buttonSubmit);
//adding validation to edittexts
awesomeValidation.addValidation(this, R.id.editTextEmail, Patterns.EMAIL_ADDRESS, R.string.nameerror);
awesomeValidation.addValidation(this, R.id.editTextMobile, "^[2-9]{2}[0-9]{8}$", R.string.nameerror);
awesomeValidation.addValidation(this, R.id.editTextDob, "^(?:(?:31(\\/|-|\\.)(?:0?[13578]|1[02]))\\1|(?:(?:29|30)(\\/|-|\\.)(?:0?[1,3-9]|1[0-2])\\2))(?:(?:1[6-9]|[2-9]\\d)?\\d{2})$|^(?:29(\\/|-|\\.)0?2\\3(?:(?:(?:1[6-9]|[2-9]\\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\\d|2[0-8])(\\/|-|\\.)(?:(?:0?[1-9])|(?:1[0-2]))\\4(?:(?:1[6-9]|[2-9]\\d)?\\d{2})$", R.string.nameerror);
awesomeValidation.addValidation(this, R.id.editTextAge, Range.closed(13, 60), R.string.ageerror);
buttonSubmit.setOnClickListener(this);
}
private void submitForm() {
//first validate the form then move ahead
//if this becomes true that means validation is successfull
if (awesomeValidation.validate()) {
Toast.makeText(this, "Validation Successfull", Toast.LENGTH_LONG).show();
//process the data further
}
}
@Override
public void onClick(View view) {
if (view == buttonSubmit) {
submitForm();
}
}
}发布于 2017-03-29 13:01:58
1.您可以在onActivityResult()中检查是否选中了图像
因此,只需重写()即可。
3.在数据中,如果您选择了图像,那么它将具有图像的路径,否则它将为空。
注意:我使用了幻灯片库来显示图像。(这部分是可选的)所以只需在build.gradle(Module )中添加它
编译‘com.github.Bangptech.glide:glide:3.7.0’
Uri filePath;// class variable
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (data != null) {
// set selected image in image view
filePath = data.getData();
Glide.with(MainActivity.this).load(filePath).into(imafeView);
} else {
// set default or any error image in image view
Glide.with(MainActivity.this).load(R.drawable.err_image_name).into(imafeView);
Log.e(TAG, "nothing Selected: ");
}
}发布于 2017-03-29 13:00:37
取一个布尔标志,并将其设置为默认false
boolean isImageAdded = false;现在从相机或库中选择图像,如果您的图像数据在onActivityResult方法中不为空,则生成isImageAdded = true。
最后,为了验证,只需检查isImageAdded是正确的还是错误的。
发布于 2017-03-30 06:12:53
您可以遵循以下代码:
开放画廊:
private void openGallery() {
Intent pOpenGalleryIntent = new Intent();
pOpenGalleryIntent.setType("image/*");
pOpenGalleryIntent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(pOpenGalleryIntent, getString(R.string.app_name)),1);
}OnActivityResult():
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
Uri pSelectedImageUri = null;
if (resultCode == RESULT_OK) {
if (requestCode == 1) {
pSelectedImageUri = data.getData();
//Set imageView
}
} else {
//Validation fail
}
}https://stackoverflow.com/questions/43093661
复制相似问题