在我的Android应用程序中,我想创建已创建的ImageButton
的重复Imagebutton
。
我想以编程方式创建新的Imagebutton
,它具有XML文件中已创建按钮的相同widht,height,background,image src,margin等。简而言之,我想创建重复的ImageButton
。
我试过这个
ImageButton mImageButton = (ImageButton) findViewById(R.id.ib);
Imagebutton duplicate = mImageButton;
但它只涉及mImageButton
。因此,duplicate
中的更改也会导致mImageButton
中的更改。
请帮帮我。谢谢......
答案 0 :(得分:9)
您无法克隆视图,执行此操作的方法是每次都创建视图。
您可以始终从XML中多次展开视图,或者创建一个以编程方式创建视图的函数。
通货膨胀:
private void addImageButton(ViewGroup viewGroup) {
View v = LayoutInflater.from(this).inflate(R.layout.ib, null);
viewGroup.addView(v);
}
编程方式:
private void addImageButton(ViewGroup viewGroup) {
ImageButton imageButton = new ImageButton(context);
viewGroup.addView(imageButton);
}
答案 1 :(得分:-1)
还要确保为每个新的克隆视图设置唯一ID。 否则你可能会收到此错误:
java.lang.IllegalStateException:指定的子节点已经有了 父节点。
您必须先在孩子的父母身上致电removeView()
。
view.setId(int id)
;