2013-04-24 53 views
1

创建不同的视图类型我不知道如何准确问这个问题,但我会试试看。的Android编程:如何以编程方式在网格的方式

这里就是我想要做的,在一个活动。

建立一个网格中,包含[X]每3列的行中,与该内容

[一个TextView(含有名)] [一个微调(含有状态的列表)] [一个EditText ]

如何开始?我可以通过编程创建视图,这不是问题,我甚至将它们存储在3个数组列表中供以后参考,但我看不出如何正确执行。

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

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

并尝试它充气在我使用创建的每个行的循环,并且设定每个视图的id以标准方式(例如的viewName [x]其中x是电流“i “从我的for,但它有什么用处?),正如我们为ExpendableList适配器的组/子项所做的那样?或者有没有一种方法可以实际使用GridView/GridLayout来做到这一点(在这种情况下,在我的Activity中,我如何将每个特定的创建视图放到正确的GridView/GridLayout中)?

或者另一种方式,我完全不怀疑?

在此先感谢

如果你想添加视图编程,然后,只需创建一个有3个Linearlayouts(水平)一layout.xml
+0

观看这部影片的第一个13分钟。它很好地展示了适配器:http://www.youtube.com/watch?v = N6YdwzAvwOA(他说ListView的一切,但GridView是一样的。 – Budius 2013-04-24 14:37:11

+0

你可以发布你的代码吗?你想以编程方式添加视图吗? – 2013-04-24 14:39:04

回答

0

。还为这些LinearLayouts分配id。然后在你的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); 
+0

谢谢,这是一个很好的起点,我仍然需要解决我的布局一起工作以建立“行”列表的方式,但它正在向前发展;) – Varkhan 2013-04-25 07:03:54

+0

不客气。只要继续努力吧... – 2013-04-25 07:06:46