我尝试从我的适配器中打开图库。
emp_photo_edit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
((EmployeeActivity)context).startActivityForResult(i, 2017);
}
});
然后我想在我的imageview
中显示选择的图像到我的recycycleview
,怎么做?因为我无法在onActivityResult
上添加adapter
。提前致谢
修改
我的完整代码
public static class MyViewHolder extends RecyclerView.ViewHolder {
....
public MyViewHolder(View v) {
super(v);
....
}
public void bind(final Employee item, final OnItemClickListener listener, final Context context) {
....
generateDialog(item,dialog_employee);
....
}
...
...
void generateDialog(Employee item, View v){
//Dialog child
//Photo
emp_photo_edit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
((EmployeeActivity)context).startActivityForResult(i, 2017);
}
});
....
}
}
答案 0 :(得分:0)
您的结果将在EmployeeActivity
onActivityResult
中到达。由于您要选择图像,因此结果将是Uri
,您必须先检索它,然后绑定到相应的项目。我建议采取以下一系列行动:
Uri
获取data.getData()
并记住您收到的请求代码。确保结果代码为Activity.RESULT_OK
。Uri
和请求代码(包含商品ID)提供给Loader
或类似内容以检索图片。MyViewHolder
可访问的项目ID的某个位置。例如,您可以在其中创建一个Map
来存储加载的图像。notifyItemChanged
以获取接收的位置。您可以调用notifyItemChanged(int position)
进行完全重新绑定,或notifyItemChanged(int position, Object payload)
payload
将是您的位图。