我无法在视图中动态添加文本框。更具体地说,文本框加法器工作,但我试图在它下面移动的按钮不起作用。原始视图是下面超链接中的第一张图片。
按下+/-按钮后,应在第二个文本框和决定按钮之间添加一个文本框,然后向下移动+/-按钮,使其位于新框旁边。相反,第二张照片发生了:
http://i.stack.imgur.com/mzBL3.png
我的代码如下所示:
EditText textBox2 = (EditText) findViewById(R.id.box2);
RelativeLayout rel = (RelativeLayout) findViewById(R.id.mainlayout);
Context context = getApplicationContext();
EditText newText = new EditText(context);
newText.setId(numBoxes);
numBoxes++;
LayoutParams p = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
p.addRule(RelativeLayout.BELOW, bottomView.getId());
p.addRule(RelativeLayout.ALIGN_RIGHT, bottomView.getId());
newText.setWidth(220);
newText.setHeight(LayoutParams.WRAP_CONTENT);
newText.setLayoutParams(p);
rel.addView(newText);
bottomView = newText;
((TextView) bottomView).setText((CharSequence)bottomView.getTag());
LayoutParams b = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
Button goButton = (Button)findViewById(R.id.decide);
b = (LayoutParams) goButton.getLayoutParams();
b.addRule(RelativeLayout.BELOW, bottomView.getId());
goButton.setLayoutParams(b);
Button addButton = (Button)findViewById(R.id.addsub);
b = (LayoutParams) addButton.getLayoutParams();
b.addRule(RelativeLayout.RIGHT_OF, textBox2.getId());
b.addRule(RelativeLayout.ALIGN_TOP, bottomView.getId());
addButton.setLayoutParams(b);
Numboxes只是一个计数器,所以我可以跟踪这些框并相应地命名它们,而bottomView只是最底部的文本框。
我搜索了所有的android开发页面,并尝试创建新的布局参数。我也尝试用文本框替换决定按钮,发生同样的问题。请帮忙。
答案 0 :(得分:2)
对于那些关心的人,我是这个开发团队的一员,我们解决了问题。
这是问题概念。
LayoutParams p = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
在我们的布局中,我们使用的是相对布局,因此该行应为:
RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
分配不兼容的布局参数会导致问题。