1

我不确定如何准确地问这个问题,但我会试一试。

这是我正在尝试做的,在一个活动中。

构建一个网格,其中包含 [x] 行,每行 3 列,包含此内容

[一个 TextView(包含一个名称)] [一个 Spinner(包含一个状态列表)] [一个 EditText]

如何开始?我可以以编程方式创建的视图,这不是问题,我什至将它们存储在 3 个数组列表中以供以后轻松参考,但我不知道如何正确地做到这一点。

我应该用例如(和伪代码)创建一个xml布局吗

LinearLayout (horizontal) 
   TextView ...
   Spinner ...
   EditText ...
/LinearLayout

并尝试在我用来创建每一行的循环中对其进行膨胀,并以标准方式设置每个视图的 id(例如 viewName[x] 其中 x 是我的 for 中的当前“i”,但它有任何用处吗? ?),就像我们对 ExpendableList 适配器的组/孩子所做的那样?

或者有没有办法实际使用 GridView/GridLayout 来做到这一点(在这种情况下,在我的 Activity 中,我如何将每个特定创建的 View 放入正确的 GridView/GridLayout 中)?

还是我根本不怀疑的另一种方式?

提前致谢

4

1 回答 1

0

如果您想以编程方式添加视图,只需创建一个包含 3 个线性布局(水平)的 layout.xml。还将 id 分配给那些 LinearLayouts。然后在您的 java 代码中,只需找到视图并在这些 LinearLayouts 上调用 addView()。

例子:

LinearLayout ll_1 = (LinearLayout)findViewById(R.id.linearlayout1);
LinearLayout ll_2 = (LinearLayout)findViewById(R.id.linearlayout2);
LinearLayout ll_3 = (LinearLayout)findViewById(R.id.linearlayout3);

...

ll_1.addView(new TextView(this));
ll_1.addView(new Spinner(this));
ll_1.addView(new EditText(this));
...

详细地说,例如,如果我想以编程方式将微调器添加到 LinearLayout,然后,

你需要得到布局

LinearLayout linearLayout =  findViewById(R.id.layoutID);

如下创建微调器:

   Spinner spinner = new Spinner(this);

spinner .setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));

                ArrayAdapter spinnerArrayAdapter = new ArrayAdapter(this,
                        android.R.layout.simple_spinner_dropdown_item, spinnerList);
                spinner.setAdapter(spinnerArrayAdapter);

然后添加微调器以查看

linearLayout.addView(spinner);
于 2013-04-24T15:04:52.720 回答