我正在尝试使用图库中的图像(单击时)更新列表视图中的图像按钮。 目前我能够以媒体商店的意图启动ActivityForResult,画廊打开,当我选择图像时,我在onActivityResult中获得了imagepath。
我的问题是如何更新特定列表项(图像按钮)上的图像?我正在使用Customadapter扩展基础适配器,并且图像按钮的onClickListener位于适配器中,onActivityResult位于主机活动中(此方法不知道单击了哪个列表项)。
我正在提供一些代码片段,只是为了获得一些观点。
/*
* Image button click listener for in the Custom adapter
*/
private class ImageOnClickListener implements OnClickListener {
@Override
public void onClick(View view) {
Intent imageIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
imageIntent.setType("image/*");
((FragmentActivity)view.getContext()).startActivityForResult(imageIntent, IMAGE_PICK_CODE);
}
}
/* onActivityResult PRESENT IN HOST ACTIVITY*/
/* On activity result from image button */
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
System.out.println("Result Code" + resultCode);
if(requestCode == FavoriteListAdapter.IMAGE_PICK_CODE && data != null && data.getData() != null && resultCode == FragmentActivity.RESULT_OK) {
Uri _uri = data.getData();
//User had pick an image.
Cursor cursor = getContentResolver().query(_uri, new String[] { android.provider.MediaStore.Images.ImageColumns.DATA }, null, null, null);
cursor.moveToFirst();
//Link to the image
String imageFilePath = cursor.getString(0);
System.out.println("imagefilepath" + imageFilePath);
cursor.close();
}
}
注意:我能够获取图像路径(因此代码正常工作,我只是不知道如何更新该列表项中的特定图像按钮)。非常感谢您的帮助。
答案 0 :(得分:0)
您可以将所点击的项目位置作为您开始的意图中的额外项目。然后,在onActivityResult中,您需要从Intent获取位置并使用适配器获取带有getItem(position)的列表项。