0

我正在尝试使用图库中的图像(单击时)更新列表视图中的图像按钮。目前我能够以媒体商店的意图启动ActivityForResult,画廊打开,当我选择图像时,我在onActivityResult中获得图像路径。

我的问题是如何更新该特定列表项(图像按钮)上的图像?我正在使用 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(); 
    }
}       

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

4

1 回答 1

0

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

于 2013-09-13T13:37:42.870 回答