当前位置:  开发笔记 > 编程语言 > 正文

Android:动态或以编程方式在一行中添加两个EditText并使它们相关

如何解决《Android:动态或以编程方式在一行中添加两个EditText并使它们相关》经验,为你挑选了1个好方法。

我有一个显示"添加联系人"的按钮,当按下该按钮时,会在按钮下方添加一个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.



1> Pavan..:

使用水平线性布局并在其中添加两个编辑文本.
试试这个 :

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);

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有