0

我正在以编程方式创建视图(微调器、编辑框和日期选择器)(不知道之前的确切数字和类型)。单击提交按钮时,我需要从视图中检索所有值。并且还知道哪个值适用于哪个视图。

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

我怎样才能实现这个功能。

4

3 回答 3

0

点击处理程序传入对被点击视图的引用。只需调用以获取其值。

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

于 2013-07-05T06:14:49.550 回答
0

为此,您可能有一个Listof Views 作为这样的类成员。

private List<View> viewList;

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

于 2013-07-05T06:20:14.880 回答
0

如果您不想要包含您的视图的列表(如 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,您可以识别哪个视图应该具有哪些信息。您也可以为此使用标签

请注意,除了名称之外,视图的 ID 不必是唯一的。

于 2013-07-05T06:49:01.740 回答