我正在尝试实现这个场景:
- 我得到我的图像
- 我将它们动态添加到 ScrollView
- 我为每个图像添加 OnClick 监听器,因此当我单击图像时,我会看到一个全屏显示图像的对话框(基本上,类似于 JQuery 中的 ThickBox)
我的代码:
decodetByteFullSize = getImageFromApi();
decodedByte=scaleToFitWidth(decodetByteFullSize, photoScroll.getWidth());
String DESIREDTEXT = GetStringFromApi();
ImageView resultImage = new ImageView(this);
resultImage.setImageBitmap(decodedByte);
resultImage.setPadding(0, 0, 0, 10);
resultImage.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Dialog imagePopup = new Dialog(MainActivity.this);
View view = getLayoutInflater().inflate(R.layout.image_layout, null);
TextView tv = (TextView) view.findViewById(R.id.tabsText);
tv.setText(DESIREDTEXT);
ImageView iv = (ImageView)view.findViewById(R.id.tabsImage);
iv.setImageBitmap(decodetByteFullSize);
imagePopup.setContentView(view);
imagePopup.show();
}
});
photoScroll.addView(resultImage);
问题 - 如何将 DESIRED TEXT
和 decodetByteFullSize
参数传递给 onClick 事件,因为它也是动态的并且对于每张图像都不同?
提前致谢!
最佳答案
final ImageView resultImage = new ImageView(this);
resultImage.setTag(DESIRED TEXT);
resultImage.setImageBitmap(decodedByte);
resultImage.setPadding(0, 0, 0, 10);
resultImage.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Dialog imagePopup = new Dialog(MainActivity.this);
View view = getLayoutInflater().inflate(R.layout.image_layout, null);
TextView tv = (TextView) view.findViewById(R.id.tabsText);
tv.setText(resultImage.getTag());
imagePopup.setContentView(view);
imagePopup.show();
}
});
关于android - 如何将自定义参数传递给 onClick 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21332106/