【问题标题】:How can I validate different buttons after taking a picture?拍照后如何验证不同的按钮?
【发布时间】:2021-10-26 01:43:21
【问题描述】:

我有 2 个带有特定图像的图像视图,它们发送到设备的相机并且我想验证,我希望在拍摄照片时它会根据拍摄照片的按钮更改图像。

我尝试过这样做,但没有成功。

ImageView imageV, imageV2;
static final int IMAGE_REQUEST = 1;
private static final int PERMISSION_REQUEST = 2;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

imageV = findViewById(R.id.image_view);
imageV2 = findViewById(R.id.image_view_2);

btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
       Intent camara = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
       if (camara.resolveActivity(getPackageManager()) != null) {
          startActivityForResult(camara, IMAGE_REQUEST);
       }
    }
});

btnIne.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
       Intent camara = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
       if (camara.resolveActivity(getPackageManager()) != null) {
          startActivityForResult(camara, IMAGE_REQUEST);
       }
    }
 });
}

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == IMAGE_REQUEST) {
        if (resultCode == Activity.RESULT_OK) {
            //Images to change
            imageV.setImageResource(R.drawable.image_view_2do);
            imageV2.setImageResource(R.drawable.image_view2_2do);

        }
        else {
            //Default images
            imageV.setImageResource(R.drawable.image_view_1er);
            imageV2.setImageResource(getResources().getString(R.string.image_view2_1er));
        }
    }

}
  

【问题讨论】:

  • 您在两个btn 上都发送了相同的request code (IMAGE_REQUEST),因此您检查它。
  • 是的,但我希望每个按钮(单独)验证它们。

标签: java android validation


【解决方案1】:

您必须在 startActivityForResult 中添加不同的请求代码。就像您对两个按钮都使用了 IMAGE_REQUEST 一样。

例如:

ImageView imageV, imageV2;
static final int IMAGE_REQUEST = 1;
static final int IMAGE_REQUEST_2 = 2;
private static final int PERMISSION_REQUEST = 2;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

imageV = findViewById(R.id.image_view);
imageV2 = findViewById(R.id.image_view_2);

btnStatementAccount.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
       Intent camara = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
       if (camara.resolveActivity(getPackageManager()) != null) {
          startActivityForResult(camara, IMAGE_REQUEST);
       }
    }
});

btnIne.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
       Intent camara = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
       if (camara.resolveActivity(getPackageManager()) != null) {
          startActivityForResult(camara, IMAGE_REQUEST_2);
       }
    }
 });
}

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == IMAGE_REQUEST) {
        if (resultCode == Activity.RESULT_OK) {
            //Images to change
            imageV.setImageResource(R.drawable.image_view_2do);
            imageV2.setImageResource(R.drawable.image_view2_2do);

        }
        else if (requestCode == IMAGE_REQUEST_2) {
        if (resultCode == Activity.RESULT_OK) {
            //Images to change
            imageV.setImageResource(R.drawable.image_view_2do);
            imageV2.setImageResource(R.drawable.image_view2_2do);

        }
        else {
            //Default images
            imageV.setImageResource(R.drawable.image_view_1er);
            imageV2.setImageResource(getResources().getString(R.string.image_view2_1er));
        }
    }

}

【讨论】:

  • 非常感谢您的回答,对我帮助很大。我有另一个问题。当 IMAGE_REQUEST 和 IMAGE_REQUEST_2 已经拍完照片时,如何进行另一次验证? else if (requestCode == IMAGE_REQUEST && requestCode == IMAGE_REQUEST_2) { }
  • 能否请您创建新问题并详细解释,如果创建,请在此处通知我。
  • 我已经创建了问题:stackoverflow.com/questions/69765327/…
猜你喜欢
  • 2012-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多