我有一个显示"添加联系人"的按钮,当按下该按钮时,会在按钮下方添加一个EditText(名称).再次按下该按钮时,它会在其下方再添加一个EditText,依此类推.
如何以编程方式在一个水平线中添加两个EditText?目前我有一个大小为5的EditText数组,因此不能添加超过5个EditText.我需要在他们每个旁边再添加一个EditText,在其中输入另一个值:电话号码.
我希望它看起来像
[ Name ] [Phone number]
[ Name ] [Phone number]
我可以让它们像打印一样
[ Name ]
[Phone number]
[ Name ]
[Phone number]
但我希望他们在一条线上.
还有可能将两个EditText联系起来吗?因此,例如,姓名和电话号码需要匹配,以便在搜索姓名时,将显示相应的电话号码.
private EditText et[] = new EditText[5]; private int index = 0; protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); //apply layout dynamically final LinearLayout layout = new LinearLayout(this); /* layout style: omit */ layout.addView( /*omit*/); //apply button dynamically Button button = new Button(this); button.setText("Add Contact"); /* more button styles: Omit */ layout.addView(button); button.setOnClickListener(new View.onClickListener(){ @Override public void onClick(View v){ if(index < 5){ et[index] = new EditText(getApplicationContext()); et[index].setHint(" NAME "); /* more et style: omit*/ layout.addView(et[index]); index++; } } } }
我当前的代码适用于每次添加一个EditText.但我不确定如何每次在一行中一次添加两个EditText.
使用水平线性布局并在其中添加两个编辑文本.
试试这个 :
LinearLayout linearLayout = new LinearLayout(this); linearLayout.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); linearLayout.setOrientation(LinearLayout.HORIZONTAL);
对两个编辑文本使用布局权重为1(1.0f是权重).您可以调整编辑文本的宽度和高度.
EditText et1 = new EditText(this); et1.setLayoutParams(new LinearLayout.LayoutParams(0, ViewGroup.LayoutParams.WRAP_CONTENT,1.0f)); EditText et2 = new EditText(this); et2.setLayoutParams(new LinearLayout.LayoutParams(0, ViewGroup.LayoutParams.WRAP_CONTENT,1.0f));
现在将编辑文本添加到水平linearLayout,然后将其添加到布局中.
linearLayout.addView(et1); linearLayout.addView(et2); layout.addView(linearLayout);