0

データベースから取得したアイテムを表示するリストビューがあります。リストビューの各アイテムには、ユーザーが情報を共有できる共有ボタンがあります。しかし、共有ボタンをクリックすると、表示される情報がクリックしたアイテムとは異なります。どの項目をクリックしても、最初のいくつかの項目の情報が取得されます。

たとえば、アイテム N 2 をクリックすると、アイテム N 3 の情報が表示されます。つまり、どのアイテムをクリックしても、間違った情報が表示されます。私はここで何か悪いことをしていますか?

**リストビューはアイテムを完璧に正しく表示します。

アダプタ.java

@Override
public View getView(final int  position, View convertView,  ViewGroup parent) {
    // convert view = design
    View v = convertView;

    if(convertView==null){

    v = vi.inflate(Resource, null);
    holder = new ViewHolder();

    holder.titre = (TextView) v.findViewById(R.id.titre);
    holder.artist = (TextView) v.findViewById(R.id.artist); 
    holder.imageview = (ImageView) v.findViewById(R.id.urlImage);
    v.setTag(holder);      


        }

    else

        holder=(ViewHolder)v.getTag();
        holder.titre.setText(mediaList.get(position).getTitre());
        holder.artist.setText(mediaList.get(position).getArtist());
        imageLoader.DisplayImage(mediaList.get(position).getUrl(), loader, holder.imageview );


        Button  button = (Button) v.findViewById(R.id.btnOne);
        //holder=(ViewHolder)v.getTag();
       button.setOnClickListener(new View.OnClickListener() { 
             @Override 
             public void onClick( View v) {
                //holder=(ViewHolder)v.getTag(); 
                //v.setTag(holder);
                 //onShareItem( v);
                 v.getTag();


                 Drawable mDrawable =  holder.imageview.getDrawable();
                 Bitmap mBitmap = ((BitmapDrawable)mDrawable).getBitmap();

                 Intent sharingIntent = new Intent(Intent.ACTION_SEND);

                 sharingIntent.setType("image/png");

                 ByteArrayOutputStream bytes = new ByteArrayOutputStream();

                 mBitmap.compress(Bitmap.CompressFormat.PNG, 1, bytes);

                 String path = Images.Media.insertImage(context.getContentResolver(), 
                            mBitmap, "Image Description", null);

                 Uri imageUri = Uri.parse(path);
                 sharingIntent.putExtra(Intent.EXTRA_STREAM, imageUri);
                 sharingIntent.setType("image/*");

                 sharingIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    context.startActivity( sharingIntent); 


             }



        });
       v.setTag(holder);

       return v;





}
4

1 に答える 1