我是Android新手,我尝试创建注册表单,用户应该可以添加多个用户。
我创建了一个包含表单的布局,并尝试在单击按钮时添加表单,它适用于第一次单击,第二次单击时应用停止添加一个表单,这里是我的代码:< / p>
片段:
public static class NewCaseFragment extends Fragment {
public NewCaseFragment() {
}
//EditText orgname;
//EditText orgaddress ;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.newcase,
container, false);
View formView = inflater.inflate(R.layout.mform,
container, false);
final LinearLayout formbis = (LinearLayout)rootView. findViewById(R.id.formbis);
final RelativeLayout form1 = (RelativeLayout)formView. findViewById(R.id.formm);
Button members= (Button)rootView. findViewById(R.id.members);
members.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
RelativeLayout formtest = new RelativeLayout(v.getContext());
formtest = (RelativeLayout)form1;
//TextView tv1 = new TextView(v.getContext());
// tv1.setText("Show Up");
formbis.addView(formtest);
}
});
return rootView;
}
表单布局:
android:id="@+id/formm"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5dp" >
<EditText
android:id="@+id/fname"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/fname"
android:inputType="text"
android:textSize="12sp" />
<EditText
android:id="@+id/lname"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/fname"
android:hint="@string/lname"
android:inputType="text"
android:textSize="12sp" />
<Spinner
android:id="@+id/catspin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/lname"
android:entries="@array/cat"
android:prompt="@string/cat"
android:textSize="10sp" />
<Spinner
android:id="@+id/rolespin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/catspin"
android:entries="@array/role"
android:prompt="@string/role"
android:textSize="10sp" />
<EditText
android:id="@+id/oparea"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/rolespin"
android:hint="@string/oparea"
android:inputType="text"
android:textSize="12sp" />
<EditText
android:id="@+id/job"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/oparea"
android:hint="@string/job"
android:inputType="text"
android:textSize="12sp" />
<EditText
android:id="@+id/phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/job"
android:hint="@string/phone"
android:inputType="phone"
android:textSize="12sp" />
<EditText
android:id="@+id/email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/phone"
android:hint="@string/email"
android:inputType="text"
android:textSize="12sp" />
</RelativeLayout>
newcase.xml
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scroller"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0.01"
android:orientation="horizontal"
android:padding="10dp" >
<EditText
android:id="@+id/casename"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.0"
android:ems="10"
android:hint="@string/casename"
android:inputType="text"
android:textSize="12sp" >
<requestFocus />
</EditText>
</LinearLayout>
<!-- layout for organisation information -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0.01"
android:orientation="horizontal"
android:padding="10dp" >
<TextView
android:id="@+id/infoorg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:layout_weight="1.0"
android:clickable="true"
android:hint="@string/infoorg"
android:textSize="14sp"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0.01"
android:orientation="horizontal"
android:padding="10dp" >
<EditText
android:id="@+id/orgname"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.0"
android:hint="@string/orgname"
android:inputType="text"
android:textSize="12sp" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0.01"
android:orientation="horizontal"
android:padding="10dp" >
<EditText
android:id="@+id/orgaddress"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.0"
android:hint="@string/orgaddress"
android:inputType="text"
android:textSize="12sp" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0.01"
android:orientation="horizontal"
android:padding="10dp" >
<TextView
android:id="@+id/staff"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:layout_weight="1.0"
android:clickable="true"
android:hint="@string/staff"
android:textSize="14sp"
android:textStyle="bold" />
</LinearLayout>
<RelativeLayout
android:id="@+id/form1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5dp" >
<EditText
android:id="@+id/fname"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/fname"
android:inputType="text"
android:textSize="12sp" />
<EditText
android:id="@+id/lname"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/fname"
android:hint="@string/lname"
android:inputType="text"
android:textSize="12sp" />
<Spinner
android:id="@+id/catspin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/lname"
android:entries="@array/cat"
android:prompt="@string/cat"
android:textSize="10sp" />
<Spinner
android:id="@+id/rolespin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/catspin"
android:entries="@array/role"
android:prompt="@string/role"
android:textSize="10sp" />
<EditText
android:id="@+id/oparea"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/rolespin"
android:hint="@string/oparea"
android:inputType="text"
android:textSize="12sp" />
<EditText
android:id="@+id/job"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/oparea"
android:hint="@string/job"
android:inputType="text"
android:textSize="12sp" />
<EditText
android:id="@+id/phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/job"
android:hint="@string/phone"
android:inputType="phone"
android:textSize="12sp" />
<EditText
android:id="@+id/email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/phone"
android:hint="@string/email"
android:inputType="text"
android:textSize="12sp" />
</RelativeLayout>
<LinearLayout
android:id="@+id/formbis"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0.01"
android:orientation="horizontal"
android:padding="10dp" >
</LinearLayout>
<Button
android:id="@+id/members"
style="@style/btnStyleGrey"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:drawableRight="@drawable/users2"
android:text="@string/plus" />
<Button
android:id="@+id/submit"
style="@style/btnStyleBlue"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="@string/submit" />
</LinearLayout>
</ScrollView>
这是日志:
05-11 16:17:25.947: W/dalvikvm(1614): threadid=1: thread exiting with uncaught exception (group=0x409961f8)
05-11 16:17:25.987: E/AndroidRuntime(1614): FATAL EXCEPTION: main
05-11 16:17:25.987: E/AndroidRuntime(1614): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
05-11 16:17:25.987: E/AndroidRuntime(1614): at android.view.ViewGroup.addViewInner(ViewGroup.java:3344)
05-11 16:17:25.987: E/AndroidRuntime(1614): at android.view.ViewGroup.addView(ViewGroup.java:3215)
05-11 16:17:25.987: E/AndroidRuntime(1614): at android.view.ViewGroup.addView(ViewGroup.java:3172)
05-11 16:17:25.987: E/AndroidRuntime(1614): at android.view.ViewGroup.addView(ViewGroup.java:3152)
05-11 16:17:25.987: E/AndroidRuntime(1614): at com.pfe.risu.ManageActivity$NewCaseFragment$1.onClick(ManageActivity.java:207)
05-11 16:17:25.987: E/AndroidRuntime(1614): at android.view.View.performClick(View.java:3480)
05-11 16:17:25.987: E/AndroidRuntime(1614): at android.view.View$PerformClick.run(View.java:13983)
05-11 16:17:25.987: E/AndroidRuntime(1614): at android.os.Handler.handleCallback(Handler.java:605)
05-11 16:17:25.987: E/AndroidRuntime(1614): at android.os.Handler.dispatchMessage(Handler.java:92)
05-11 16:17:25.987: E/AndroidRuntime(1614): at android.os.Looper.loop(Looper.java:137)
05-11 16:17:25.987: E/AndroidRuntime(1614): at android.app.ActivityThread.main(ActivityThread.java:4340)
05-11 16:17:25.987: E/AndroidRuntime(1614): at java.lang.reflect.Method.invokeNative(Native Method)
05-11 16:17:25.987: E/AndroidRuntime(1614): at java.lang.reflect.Method.invoke(Method.java:511)
05-11 16:17:25.987: E/AndroidRuntime(1614): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
05-11 16:17:25.987: E/AndroidRuntime(1614): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
05-11 16:17:25.987: E/AndroidRuntime(1614): at dalvik.system.NativeStart.main(Native Method)
答案 0 :(得分:0)
问题来自我认为formtest
已经formView
为父母的事实:
在此声明form1
是formView的孩子:
final RelativeLayout form1 = (RelativeLayout)formView. findViewById(R.id.formm);`
然后将formtest
设为form1
:
formtest = (RelativeLayout)form1;
最后:
formbis.addView(formtest);
但此处formtest
无法附加到formbis
,因为您已通过formView
将其与form1
相关联。