2011-06-27 39 views
0

我正在尝试将编辑文本视图动态添加到来自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"); 
       } 
      } 
     }); 
} 

这是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> 

每当我在我的按钮点击操作的一声,但什么都不做。即使新的编辑文本位于编辑文本列表中,页面的布局也不会更改,并且我将新的编辑文本添加到布局。

任何帮助,将不胜感激谢谢。

+0

什么是contacteditll的方向是什么?如果你从xml添加按钮,它是否正常工作? –

+0

该按钮位于xml中。方向是垂直的。 – Hugs

+0

请添加您的xml。 –

回答

1

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

  • LinearLayout放在ScrollView的内部。
  • 使用weight参数。

使用重量参数:

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

事情可能是在屏幕外。我尝试了权重,但似乎没有工作。因此,要将滚动视图放入滚动视图标签中,是否要将线性布局标签包含在内? – Hugs

+0

@ Hugo:正好。 – Macarse

+0

当我将线性布局放在滚动视图中时,我的屏幕变黑。我很抱歉不断问你问题。 – Hugs