0

我在 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变量在哪里。

我想实现两件事:

  1. 在同一行中显示相同索引的编辑文本和切换按钮。
  2. 代替//Button is ON/OFF我想显示button [i] is ON/OFF
4

2 回答 2

3

ll可能具有垂直方向,这意味着添加到布局中的项目将出现在另一个之下。要将 theEditText和 theToggleButton放在同一行,您必须将它们放在另一个布局中 - 您可以使用另一个LinearLayout具有水平方向的布局。然后将它们添加到这个新布局而不是EditText直接ToggleButton添加ll到 ,然后将这个新布局添加到ll.

LinearLayout line = new LinearLayout(context);
line.setOrientation(LinearLayout.HORIZONTAL);
line.addView(et);
line.addView(tb);
ll.addView(line);

您可能还想设置布局参数和其他东西来进行一些对齐。

于 2015-11-27T07:53:55.620 回答
2

您可以将标签添加到您创建的视图中,并使用它来识别您的按钮。

private static final int TAG_KEY_POS = R.id.someid;

...
tb.setTag(TAG_KEY_POS, i);
...

您可以稍后检索该值

(Integer) view.getTag(TAG_KEY_POS);
于 2015-11-06T19:47:53.283 回答