我以编程方式创建视图(spinner,editbox和datepicker)(不知道之前的确切数字和类型)。单击“提交”按钮,我需要从视图中检索所有值。并且还知道哪个值适用于哪个视图。
我最终需要将所有这些值传递给另一个活动。
如何实现此功能。
答案 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不必是唯一的。