我在gridView适配器类的编码中创建了一个imageView:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// Try to reuse the views
ImageView view = (ImageView) convertView;
boolean checked = (mCheckBox==null)?false:(((CheckBox) mCheckBox).isChecked());
// if convert view is null then create a new instance else reuse it
if (view == null) {
view = new ImageView(Context);
Log.d("GridViewAdapter", "new imageView added");
}
有没有办法可以为view
分配一个id,以便我可以在另一个类中使用该ID来设置图像?
我要像这样设置图像:
/// Let's save to a .jpg file ...
File file = new File(mContext.getFilesDir().getAbsolutePath() + "/test2.jpg");
FileOutputStream out;
try {
file.createNewFile();
out = new FileOutputStream(file);
appBmp.compress(Bitmap.CompressFormat.JPEG, 80, out);
out.close();
// Load back the image file to confirms it works
Bitmap bitmap = BitmapFactory.decodeFile( file.getAbsolutePath() );
ImageView imageView1 = (ImageView)v.findViewById(R.id.layout1);
imageView1.setImageBitmap( bitmap );
}
这样我就可以在findViewById
中设置该ID,并将图像设置为该imageView。
我已经尝试设置具有不同id值的ids.xml文件,然后通过执行以下操作将其分配给imageView:
view.setId(R.id.layout1);
但这不起作用。
答案 0 :(得分:0)
您可以使用View.setId()设置任何整数,您不需要在xml中定义它们(这会使您的方法静态而不是动态)。这可能不起作用,因为你需要eclipse / android studio / adb来为xml id创建引用文件。
您只需检查是否指定了唯一ID。请参阅此帖以解决此问题:
Programmatic Views how to set unique id's?。请注意,根据定义,Id不需要是唯一的,但如果它们不是,则不会通过id将它们取回。也许setTag
可能更符合您的需求吗?