处理以编程方式添加的 EditText
Handling an EditText that was added programatically
我一直在动态创建我的所有视图,现在我想添加一个 EditText 供人们写入。
我已经完成了大部分,但它看起来不对。我有一个线性布局,我正在向其添加相对布局。我正在使相对布局具有白色背景,然后添加 EditText。问题是,它总是将它添加到相对布局的直接中心,并且将它垂直对齐到顶部的选项到目前为止都失败了。
我还需要能够在按下单独的按钮时从中提取文本(我知道如何使按钮工作,这是从中提取文本的部分我有点不确定)。到目前为止,这是我的代码:
public void addEditText(LinearLayout L){
EditText myEditText = new EditText(c);
myEditText.setSingleLine(false);
RelativeLayout l1 = new RelativeLayout(c);
LinearLayout.LayoutParams lp=new LinearLayout.LayoutParams(scWidth1, 300);
lp.gravity=Gravity.CENTER;
l1.setLayoutParams(lp);
l1.setBackgroundColor(Color.WHITE);
l1.setGravity(Gravity.CENTER_VERTICAL);
l1.addView(myEditText);
L.addView(l1);
}
l1.setGravity(Gravity.CENTER_VERTICAL);
将 EditText
置于父容器的垂直中心,即 RelativeLayout
,删除该行。
我一直在动态创建我的所有视图,现在我想添加一个 EditText 供人们写入。
我已经完成了大部分,但它看起来不对。我有一个线性布局,我正在向其添加相对布局。我正在使相对布局具有白色背景,然后添加 EditText。问题是,它总是将它添加到相对布局的直接中心,并且将它垂直对齐到顶部的选项到目前为止都失败了。
我还需要能够在按下单独的按钮时从中提取文本(我知道如何使按钮工作,这是从中提取文本的部分我有点不确定)。到目前为止,这是我的代码:
public void addEditText(LinearLayout L){
EditText myEditText = new EditText(c);
myEditText.setSingleLine(false);
RelativeLayout l1 = new RelativeLayout(c);
LinearLayout.LayoutParams lp=new LinearLayout.LayoutParams(scWidth1, 300);
lp.gravity=Gravity.CENTER;
l1.setLayoutParams(lp);
l1.setBackgroundColor(Color.WHITE);
l1.setGravity(Gravity.CENTER_VERTICAL);
l1.addView(myEditText);
L.addView(l1);
}
l1.setGravity(Gravity.CENTER_VERTICAL);
将 EditText
置于父容器的垂直中心,即 RelativeLayout
,删除该行。