如何从onActivityResult更新Listview(listview中的imagebutton)?

时间:2013-09-13 13:27:20

标签: android android-listview android-activity android-adapter

我正在尝试使用图库中的图像(单击时)更新列表视图中的图像按钮。 目前我能够以媒体商店的意图启动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(); 
    }
}       

注意:我能够获取图像路径(因此代码正常工作,我只是不知道如何更新该列表项中的特定图像按钮)。非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您可以将所点击的项目位置作为您开始的意图中的额外项目。然后,在onActivityResult中,您需要从Intent获取位置并使用适配器获取带有getItem(position)的列表项。