我在android中动态创建了10个editText和10个Toggle Button。 我已经完成了这一部分,但我想要更多的进步。代码片段如下:
for(int i =0 ; i < 10; i++) {
et=new EditText(context);
et.setLayoutParams(lprams);
et.setKeyListener(null);
et.setClickable(true);
et.setId(1);
et.setText(lwfb.get(i));
et.setFocusableInTouchMode(true);
final ToggleButton tb = new ToggleButton(context);
tb.setTextOn("ON");
tb.setTextOff("OFF");
tb.setChecked(true);
tb.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
ll.addView(et);
ll.addView(tb);
tb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(tb.isChecked()){
//Button is ON
} else {
//Button is OFF
}
}
});
}
ll
是动态LinearLayout
变量的位置。
我想实现两件事:
//Button is ON/OFF
我要显示button [i] is ON/OFF
。答案 0 :(得分:3)
ll
可能是垂直方向,这意味着添加到布局中的项目将显示在另一个下方。要将EditText
和ToggleButton
放在同一行中,您必须将它们放在另一个布局中 - 您可以使用另一个LinearLayout
水平方向。然后,不是将EditText
和ToggleButton
直接添加到ll
,而是将它们添加到此新布局,然后将此新布局添加到ll
。
LinearLayout line = new LinearLayout(context);
line.setOrientation(LinearLayout.HORIZONTAL);
line.addView(et);
line.addView(tb);
ll.addView(line);
您可能还需要设置布局参数和其他内容以进行一些对齐。
答案 1 :(得分:2)
您可以在创建的视图中添加tag,并使用它来识别您的按钮。
private static final int TAG_KEY_POS = R.id.someid;
...
tb.setTag(TAG_KEY_POS, i);
...
您可以稍后使用
检索该值(Integer) view.getTag(TAG_KEY_POS);