Dynamically add Edittext to a relative layout unde

2019-09-15 03:08发布

问题:

I am trying to add an editText dynamically to a relative layout. the layout contains an editText already. I need to add the new editText below the existing one.

EditText designation1 = new EditText(context);
designation1.setHint("designation");
designation1.setSingleLine(true);

and my layout is

layoutExp = 
    (RelativeLayout) childView.findViewById(R.id.relative_layout_edit_exp);

and my existing edit Text is

designation = (EditText)childView.findViewById(R.id.editTextDesignatn);

回答1:

You need to use RelativeLayout.LayoutParams and specifiy the relative position with the addRule(RelativeLayout.BELOW, ...) (this is the programmatic equivalent for android:below XML attribute):

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.BELOW, R.id.editTextDesignatn);
layoutExp.addView(designation1, params);


回答2:

It will be possible if You set for example a LinearLayout under Your existing EditText. Give an ID to this LinearLayout and then You could put Your dynamic EditText to this LinearLayout like

    YourLinearLayout.addView(YourDynamicEditText);