0

リストビューにある画像ボタンをギャラリーの画像で更新しようとしています(クリックしたとき)。現在、メディアストアへのインテントでActivityForResultを開始できます。ギャラリーが開き、画像を選択すると、onActivityResultでimagepathを取得します。

私の質問は、その特定のリスト項目 (画像ボタン) の画像を更新するにはどうすればよいですか? Customadapter 拡張ベース アダプターを使用しており、イメージ ボタンの onClickListener はアダプターにあり、onActivityResult はホスト アクティビティにあります (このメソッドは、どの listitem がクリックされたかを知りません)。

いくつかの視点を得るために、コードスニペットをいくつか入れています。

/*
 * 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 に答える