2013-05-30 48 views
0

我怎样才能以编程方式添加新的EditText到RelativeLayout,这是在LinearLayout?Android的更新RelativeLayout这是在LinearLayout

我的布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:background="@color/bg" 
    android:id="@+id/mainlayout" 
    tools:context=".NwActivity" android:baselineAligned="false"> 

    <RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:id="@+id/rlA" > 

     <TextView 
      android:id="@+id/teamA" 
      android:text="@string/teamA" 
      android:textSize="24sp" 
      style="@style/Txt" /> 

     <Button 
      android:id="@+id/pAddA" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/teamA" 
      style="@style/Txt" 
      android:text="@string/pAdd" 
      android:onClick="addA" /> 

    </RelativeLayout> 

    <RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:id="@+id/rlB" > 

     <TextView 
      android:id="@+id/teamB" 
      android:text="@string/teamB" 
      android:textSize="24sp" 
      style="@style/Txt" /> 

     <Button 
      android:id="@+id/pAddB" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/teamB" 
      style="@style/Txt" 
      android:text="@string/pAdd" 
      android:onClick="addB" /> 

    </RelativeLayout> 

</LinearLayout> 

我的活动:

package basketball.counter; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.EditText; 
import android.widget.LinearLayout; 

public class NwActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_nw); 
    } 

    public void addA(View view) { 
     LinearLayout ll = (LinearLayout) findViewById(R.id.mainlayout); 
     EditText et = new EditText(this); 
     et.setHint(R.string.pHint); 
     ll.addView(et); 
     setContentView(ll); 
    } 

    public void addB(View view) { 

    } 

} 

我只得到它的mainLayout。我也需要在EditText参数上设置“LayoutBelow”。谢谢。

回答

1

试试这个在这整个的EditText添加在运行时,你可以通过XML添加此给予ID

 RelativeLayout rl=(RelativeLayout)findViewById(R.id.relativelayoutid);  

    Edit Text et=new EditText(this); 
    et.setHeight(50); 
    et.setWidth(50); 
    et.setId(1); 



    EditText et1=new EditText(this); 
    et1.setHeight(50); 
    et1.setWidth(50); 
    et1.setId(3); 

      RelativeLayout.LayoutParams params1= new RelativeLayout.LayoutParams 
     (LayoutParams.WRAP_CONTENT, 
      LayoutParams.WRAP_CONTENT); 



     params1.addRule(RelativeLayout.BELOW,et.getId()); 
     params1.addRule(RelativeLayout.ALIGN_PARENT_LEFT); 
     et1.setLayoutParams(params1); 
      rl.addView(et1); 

希望这将帮助你

+0

工作得很好!谢谢 :) – user2350530

相关问题