android - 使用观察者来监控 Android View

标签 android performance

如何监控 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/

相关文章:

未找到 Android L ViewAnimationUtils?

android - notifyDataSetChanged 不起作用?

sql - 做性能测试时如何避免出现SQL Server的 "rebuild statistics"?

python - 提高 numpy 三角函数运算的性能

android - 获取所有 View 在 Android 布局上有用于设置自定义字体的文本。什么是最佳实践?

android - 5.0 之前如何让 CardView 无缝堆叠(如 Gmail 的 Inbox)

android - 将我的 TTS 引擎添加到像 SAPI 一样的 Android TTS 服务

android - 更新 gradle 问题后依赖

r - 如何有效地将顺序变量添加到大数据框

python - 获取两个整数列表并创建类型列表对的更快方法