如何监控 Android 应用程序中的多个 View 。我对此感兴趣的原因是,我的应用程序有一个 View ,其中包含许多字段 EditTexts、Spinners、CheckBoxes、RadioButtons
和一些 EditTexts
被隐藏,除非选择特定的Spinner Item
或选中Radio Button
。我希望观察者做的就是在启用提交按钮
之前检查所有字段是否已填写,以及是否有取消查看
-hidden 它必须检查字段是否也已填充。这就是我陷入困境的地方:我有四个 bool 检查来检查四个隐藏的 View ,但我不想写一个长if/else语句。谢谢
最佳答案
以下代码将帮助您检查单个 ViewGroup 中包含的未知数量的不同类型的 View。在您只有四个 View 的情况下,我认为您可能更喜欢四个“if”子句。
您可以通过在布局文件中添加标签来标记所有要检查的 View :
android:tag="CheckMe"
标签不必是唯一的,因此您可以对所有 View 使用相同的标签。 除此之外,为包含您的 View 的 ViewGroup 提供一个 id(这可能是一个 LinearLayout)
android:id="@+id/myLayout"
然后在你的activity中你可以先获取ViewGroup
ViewGroup myLayout = (ViewGroup) findViewById(R.id.mylayout);
然后循环 subview :
for (int i = 0; i < myLayout.getChildCount(); i++)
{
View v = myLayout.getChildAt(i);
if (v.getTag().toString().equals("CheckMe")
{
if (v instanceof EditText)
{ // do something
}
else if (v instanceof SomeOtherView)
{ // do something else
}
}
}
关于android - 使用观察者来监控 Android View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32218671/