我有一个列表视图,它显示从数据库中检索到的项目。列表视图中的每个项目都有一个共享按钮,允许用户共享信息。但是,当我单击共享按钮时,显示的信息与我单击的项目不同。而且无论我点击哪个项目,它都会获取前几个项目的信息。
例如,点击item N 2 会显示item N 3 的信息。也就是说,无论我点击哪个item,它都会显示错误的信息。我在这里做错什么了吗?
**列表视图完美地正确显示项目。
适配器.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;
}