我想根据用户说明动态地将视图(textview或EditText)添加到我的布局中。 我正在开发这个只是为了弄清楚事情并了解它们是如何工作的。 我的XML文件如下
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/email"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="email1"
/>
<EditText
android:id="@+id/edit1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="enter mail "
/>
</LinearLayout>
<LinearLayout
android:id="@+id/phones"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/text2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="phone number"
/>
<EditText
android:id="@+id/edit2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="enter phone "
/>
</LinearLayout>
<LinearLayout
android:id="@+id/myButtons"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="add mail"
android:onClick="addmail"
/>
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="add phone"
/>
</LinearLayout>
</LinearLayout>
现在,我有两个按钮。当用户点击addmail时,我希望将edittext添加到我的布局中(在我的第一封电子邮件EditText下面,带有ID为“email”的LinearLayout)。 我已经为按钮设置了android:onClick到addmail 我的addmail功能如下:
public void addmail(){
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams((LayoutParams. WRAP_CONTENT) , (LayoutParams.WRAP_CONTENT));
EditText edittv = new EditText(getApplicationContext());
edittv.setLayoutParams(lp);
LinearLayout ll1=(LinearLayout)findViewById(R.id.email);
ll1.addView(edittv);
}
但代码无效。需要进行哪些修改?我哪里错了。 我的观念有问题吗? 提前谢谢你
答案 0 :(得分:1)
请勿在此处使用Application Context
:EditText edittv = new EditText(getApplicationContext());
,只需使用特定的Activity Context
即可解决您的问题。我希望如此:D!