我在imageview后面有一个textview:Click to add an image
。
当用户点击时,它将打开图库。如果用户选择图像,它将显示在图像视图中。
如果选择了图片,我想将textview文本设置为空白。
我点击了在imageview内部尝试:
Intent galleryIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(galleryIntent, RESULT_LOAD_IMAGE);
ImageViewText.setText("");
这里的问题是用户点击imageview时textview将是空白的。如果用户真的选择了图像,我想要的是重置它。
有什么想法吗?
答案 0 :(得分:2)
当您使用startActivityForResult()
时,如果成功选择imageUri
,您将以onActivityResult()
方式从Intent获取图片路径image
。
添加条件以检查RESULT_OK
和REQUEST_CODE
。如果true
同时将image
设置为imageView
并设置textView
值blank("")
或将可见性更改为GONE
或INVISIBLE
。< / p>
试试这个:
@Override
protected void onActivityResult(int reqCode, int resultCode, Intent data) {
super.onActivityResult(reqCode, resultCode, data);
if (resultCode == RESULT_OK) {
if (requestCode == REQUEST_CODE) {
try {
final Uri imageUri = data.getData();
final InputStream imageStream = getContentResolver().openInputStream(imageUri);
final Bitmap selectedImage = BitmapFactory.decodeStream(imageStream);
// Set image
imageView.setImageBitmap(selectedImage);
// Set text
textView.setText("");
// Alternative
// textView.setVisibility(View.GONE); or
// textView.setVisibility(View.INVISIBLE);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
}
希望这会有所帮助〜
答案 1 :(得分:1)
由于您使用的是startActivityForResult,因此应该重写onActivityResult方法。您可以检查用户是否实际选择了可以调用setText(&#34;&#34;)或最好是setVisibility(View.GONE)的内容