我使用RadioButton
获取findViewById()
的对象,然后为其设置`onclicklistener'。代码如下:
final EditText editTextView = (EditText)findViewById(2001);
RadioButton rb = (RadioButton) findViewById(R.id.radio3);
rb.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
LinearLayout linearLayout = (LinearLayout) findViewById(R.id.editTextGroupLayout);
LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);
editTextView.setLayoutParams(params);
editTextView.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL| InputType.TYPE_NUMBER_FLAG_SIGNED);
editTextView.setId(2001);
linearLayout.addView(editTextView);
}
});
当我点击radiobutton
上的一次时,它运行正常。但是当我点击两次时,会生成
java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
点击两次,为什么会发生此异常?
我尝试了什么
我尝试删除该行final EditText editTextView = (EditText)findViewById(2001);
并在onClick()
,EditText editTextView = (EditText)findViewById(2001);
中添加此行。但是,通过执行此操作,它甚至不会执行一次。它也会显示exception
。
答案 0 :(得分:1)
如果你只有一个edittext实例,那么alerady在第一次点击后就有了父母。尝试从父级中删除视图,然后重新放置它。 或者也许尝试显示/隐藏它?
你应该做这样的事情。
linearLayout.removeAllViews(); or linearLayout.removeView(editTextView);
...
linearLayout.addView(editTextView);