首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android中图像视图的登录验证

android中图像视图的登录验证
EN

Stack Overflow用户
提问于 2017-03-29 12:33:50
回答 3查看 2.3K关注 0票数 1

验证:登录表单:我可以验证电子邮件:如果有错误,它不应该转到下一页。

但是,有一个领域。图像视图。我从画廊里挑选了一张图片,并将其设置为图像视图。也不存在任何问题。

当Imageview中没有图像时,应该会出现错误,因为没有图像,这就像电子邮件验证一样。如何像登录验证一样验证Imageview

不应该移到下一页..。

..How是可能的。有什么帮助吗?谢谢已经提前了。我可以用下面的代码成功地验证,比如我想要的Imageview。

代码语言:javascript
复制
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();
    }
}
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-03-29 13:01:58

1.您可以在onActivityResult()中检查是否选中了图像

因此,只需重写()即可。

3.在数据中,如果您选择了图像,那么它将具有图像的路径,否则它将为空

注意:我使用了幻灯片库来显示图像。(这部分是可选的)所以只需在build.gradle(Module )中添加它

编译‘com.github.Bangptech.glide:glide:3.7.0’

代码语言:javascript
复制
   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: ");
        }
    }
票数 1
EN

Stack Overflow用户

发布于 2017-03-29 13:00:37

取一个布尔标志,并将其设置为默认false

代码语言:javascript
复制
boolean isImageAdded = false;

现在从相机或库中选择图像,如果您的图像数据在onActivityResult方法中不为空,则生成isImageAdded = true

最后,为了验证,只需检查isImageAdded是正确的还是错误的。

票数 2
EN

Stack Overflow用户

发布于 2017-03-30 06:12:53

您可以遵循以下代码:

开放画廊:

代码语言:javascript
复制
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():

代码语言:javascript
复制
@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
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43093661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档