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