我有两个活动,第二个是您输入数据并选择图像,第一个或主要活动是显示数据的位置。图像选择器的代码如下所示:
imagePicker.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Image Selector"), 1);
}
});
然后在onActivityResult方法中处理数据
Uri uri = data.getData();
imagePicker.setImageURI(uri);
imageUri = uri.toString();
imagePicker的图像集用于向用户显示响应,imageUri是全局String变量。当用户填写表单并按下添加按钮时,imageUri String和一些其他变量将插入到数据库表的一行中。此活动关闭并在主要活动onResume方法内部检索数据,并且数据库表的每一行等于列表视图中的项目。
由于我有自定义列表视图项布局,因此我使用了自定义数组适配器。在适配器中,imageUri String变量变为object.getImage()。
if(!object.getImage().equals("")) {
imageView.setImageUri(Uri.parse(object.getImage()));
}
我检查它是否有值,因为用户不需要图像,因此会显示标准图像。如果他们选择了图像,则会从uri字符串中设置图像uri。这是我的问题,因为当它运行图像所在的区域是空白时我得到错误:
resolveUri failed on bad bitmap uri: content://com.android.providers.media.documents/document/image%3A29948
我倾向于认为这是错误和列表视图的组合,因为在表单活动完成并关闭之后,项目在列表视图中可见而不滚动图像是它的意思但是,只要我打开另一个活动或再次打开应用程序,它们就会变成空白。即使图像显示,我相信我仍然得到相同的错误消息存储