如何检索动态创建的视图的值?

时间:2013-07-05 06:11:47

标签: android android-layout

我以编程方式创建视图(spinner,editbox和datepicker)(不知道之前的确切数字和类型)。单击“提交”按钮,我需要从视图中检索所有值。并且还知道哪个值适用于哪个视图。

我最终需要将所有这些值传递给另一个活动。

如何实现此功能。

3 个答案:

答案 0 :(得分:0)

点击处理程序传入对单击的视图的引用。只需要打电话来获取它的价值。

如果你真的需要完成你所做的所有事情并检查所有值,请将它们全部存储在某些数据结构中(哈希,列表等)。跟踪哪个应该是该数据结构的一部分。但是,如果不知道何时以及为什么需要访问它们,以及它们用于什么,我们就无法真正建议更详细的解决方案。

答案 1 :(得分:0)

为此,您可能会List View作为此类成员。

private List<View> viewList;

创建每个View时,将每个视图添加到此列表中。然后,您可以轻松地遍历它以获取值。

答案 2 :(得分:0)

如果你不想要一个包含yout视图的列表(如R9j所建议,这是一种非常好的方法),也可以使用

获取活动的根视图。
View rootLayout= ((ViewGroup)findViewById(android.R.id.content)).getChildAt(0)

在此视图中,您添加的所有视图都将是,因此您可以浏览子视图列表

    for(int i=0; i<rootLayout.getChildCount(); i++)
    {
        View child = rootLayout.getChildAt(i);
        if(child instanceof TextView)
        {
            int id= child.getId();
            if(id>500) //whatever check makes sense to you given the way you use ids
            {
                String content = ((TextView) child).getEditableText().toString();
            }
        }
    }

在这种情况下,我检查了TextView,但是任何其他类型都是可能的,通过在创建视图时为视图提供ID,您可以识别哪个View应该具有哪些信息。 You may also use tags for that

请注意,要查看其名称,视图的ID不必是唯一的。