Android 向布局中动态添加编辑文本

Android 向布局中动态添加编辑文本,android,android-edittext,Android,Android Edittext,我试图从java类向布局动态添加编辑文本视图。然而,从我实施的情况来看,我的行动没有任何变化。这就是我所拥有的: public final void onCreate(final Bundle i){ int value = 0; isEdit = false; try { super.onCreate(i); this.setContentView(R.layout.contactedit); Contact

我试图从java类向布局动态添加编辑文本视图。然而,从我实施的情况来看,我的行动没有任何变化。这就是我所拥有的:

public final void onCreate(final Bundle i){
    int value = 0;

    isEdit = false;

    try
    {
        super.onCreate(i);

        this.setContentView(R.layout.contactedit);
        ContactList.soundIndicator = 0;
        etPhoneNumber = new ArrayList<EditText>();
        this.etPhoneNumber.add((EditText) this.findViewById(R.id.etPhoneNumberInput));

        this.addNumberBtn = (Button) this.findViewById(R.id.addNumberEditText);
        addNumberBtn.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                //etPhoneNumber.add(new EditText(ContactEdit.this));
                try{
                    LinearLayout layout = (LinearLayout) findViewById(R.id.contacteditll);

                    EditText temp = new EditText(ContactEdit.this);
                    temp.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
                            LayoutParams.WRAP_CONTENT));                

                    etPhoneNumber.add(temp);

                    layout.addView(temp);
                }catch(Exception e){
                    Log.d(TAG, "Failed to create new edit text");
                }
            }
        });
}
public final void onCreate(最终Bundle i){
int值=0;
isEdit=假;
尝试
{
super.onCreate(i);
这个.setContentView(R.layout.contactedit);
ContactList.soundIndicator=0;
etPhoneNumber=新的ArrayList();
添加((EditText)this.findViewById(R.id.etPhoneNumberInput));
this.addNumberBtn=(按钮)this.findViewById(R.id.addnumberditText);
addNumberBtn.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
//添加(新编辑文本(ContactEdit.this));
试一试{
LinearLayout布局=(LinearLayout)findViewById(R.id.contacteditll);
EditText temp=新的EditText(ContactEdit.this);
临时设置LayoutParams(新LayoutParams(LayoutParams.FILL_父级、,
LayoutParams.WRAP_内容);
etPhoneNumber.add(临时);
布局。添加视图(临时);
}捕获(例外e){
Log.d(标记“未能创建新编辑文本”);
}
}
});
}
这是xml:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="wrap_content" 
  android:baselineAligned="true" 
  android:orientation="vertical"
  android:id="@+id/contacteditll"
  android:background="@drawable/darkimg">

       <TextView
        android:id="@+id/titlePrint"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/titlePrompt"
        />

      <Spinner 
        android:id="@+id/spContactTitle"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:prompt="@string/titlePrompt"
        />

    <TextView 
     android:text="@string/namePrint"
     android:id="@+id/namePrint" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content">
     </TextView>

    <EditText android:layout_width="match_parent" 
    android:hint="@string/returnName" 
    android:id="@+id/etFirstNameInput" 
    android:layout_height="wrap_content"
    android:layout_toRightOf= "@+id/namePrint">
    </EditText>

     <TextView 
     android:text="@string/secondPrint"
     android:id="@+id/secondPrint" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content">
     </TextView>

    <EditText android:layout_width="match_parent" 
    android:hint="@string/returnName" 
    android:id="@+id/etSecondNameInput" 
    android:layout_height="wrap_content"
    android:layout_toRightOf= "@+id/namePrint">
    </EditText>

    <TextView android:id="@+id/numberPrint"
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:text="@string/numberPrint">
    </TextView>

    <EditText android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    android:id="@+id/etPhoneNumberInput" 
    android:hint="@string/returnNumber">
    </EditText>

    <Button android:id="@+id/addNumberEditText"
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content"
        android:freezesText="true"
    android:editable="false"
    android:text="ADD"
    />


     <include 
     android:id="@+id/customedittext"
     layout="@layout/myedittext"/>

    <TextView android:id="@+id/emailPrint" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:text="@string/emailPrint">
    </TextView>

    <EditText android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    android:id="@+id/etEmailAddressInput" 
    android:hint="@string/returnEmail">
    </EditText>

    <Button 
    android:freezesText="true"
    android:editable="false"
    android:layout_gravity="center" 
    android:layout_height="wrap_content" 
    android:id="@+id/btnSaveButton" 
    android:layout_width="wrap_content"  
    android:text="@string/save"
    android:layout_below="@+id/emailInput" 
   />

</LinearLayout>

每当我点击我的按钮时,会听到动作,但什么也没做。即使新编辑文本在我的编辑文本列表中,并且我正在将新编辑文本添加到布局中,页面的布局也不会改变


任何帮助都将不胜感激。

它肯定会被添加,但您看不到它,因为没有剩余空间。有两件事需要测试:

  • 线性布局
    放在
    滚动视图
  • 使用权重参数
使用权重参数:

EditText temp = new EditText(ContactEdit.this);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,
                            LayoutParams.WRAP_CONTENT, 1);
temp.setLayoutParams(params);

contacteditll的方向是什么?如果从xml添加按钮,它是否正常工作?按钮在xml中。方向是垂直的。我添加了xml。我尝试的是,如果用户单击按钮,创建一个新的编辑文本以允许他们输入另一个数字。我想contacteditll是保存所有视图的外部布局。这对我来说很好。edittext被添加到布局的底部。customedittext的高度是多少。我认为这里的问题是edittext被添加了,但它在屏幕外,添加滚动。事情可能在屏幕外。我尝试了加权,但似乎不起作用。因此,要放入滚动视图,我是否要将线性布局括起来ScrollView标签中的ag?当我在scroll view中包含线性布局时,我的屏幕变黑了。很抱歉一直问你问题。等等,我收到了。谢谢你的帮助。现在我必须将编辑文本放在正确的位置。谢谢在你找到其他内容后与大家分享。我现在正在寻找相同的内容:'(