我想以编程方式从新的类构造函数创建一个按钮。它不是主要的类。
class myChips
{
ImageView slika;
RelativeLayout rl;
myChips(View v)
{
rl = (RelativeLayout) v.getParent();
slika = (ImageView) findViewById(R.id.img_25);
slika.setLayoutParams(new RelativeLayout.LayoutParams(dpToPx, dpToPx));
rl.addView(slika);
}
}
当我从onClick方法
初始化新对象时 public void placeChip(View v)
{
myChips test = new myChips(v);
}
我在线上遇到了崩溃和错误
rl.addView(slika);
"指定的子级已有父级。您必须先在孩子的父母身上调用removeView()。"
我尝试了一些尝试,但仍然可以摆脱它。
答案 0 :(得分:0)
如果你看findViewById() mehtod:
查找具有给定ID的子视图。如果这个观点有给定的 id,返回此视图。
这意味着您的 slika rl.addView(slika);
已经拥有父级,因此您可以为其添加另一个父级。
这就是为什么当你执行java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first
时,它会抛出 IllegalStateException 。
myChips(View v, Context context)
{
rl = (RelativeLayout) v.getParent();
slika = new ImageView(context);
slika.setLayoutParams(new RelativeLayout.LayoutParams(dpToPx, dpToPx));
rl.addView(slika);
}
请改为尝试:
public void placeChip(View v)
{
myChips test = new myChips(v, YourActivity.this);
}
在你的活动中:
tables.getTable