【发布时间】:2013-01-11 08:13:02
【问题描述】:
我有一个这样的应用程序结构:
背景:
父活动 #1 只是持有标签主机、标签小部件和还在设置 3 个选项卡以将其内容设置为 3 个选项卡 activities(tab1、tab2、tab3 活动)。
更新: 我尝试在里面调用我的验证方法 父活动 #1 中的 onTabChangedListener 但我有一个空指针 例外。无法真正追踪到任何地方。我做了 评论/删除冲突代码,但我仍然没有得到 瓶颈。StackTrace(PasteBin 链接)。 Parent Activity #1,Tab#1 Activity的代码
问题:
我想验证用户在各个选项卡活动 onTabChanged 事件的表单字段中输入的数据但是 我无法设置多个setOnTabChangedListener。
我在这里遗漏了什么吗?
侦听器在oncreate 方法下的自己的 tab# 活动中设置。
除了尝试上述技术之外,我还尝试设置onResume() 中的侦听器在主要父活动 #1 下。但是从未调用过on Resume() 方法。我也遇到了空指针异常。
验证背后的想法是: 我希望在用户更改选项卡时,应先验证数据,然后才能跳过选项卡。因此,如果选择了 tab#2/tab#3,我将要求 tab#1 在类似于 onTabChanged 的事件中验证数据。
此外,如果选择了当前 tab#2 并且用户选择了选项卡,这将适用#1/标签#3
任何建议将不胜感激..
感谢阅读..
【问题讨论】:
-
@Ajit 感谢您的回复。我面临的问题实际上并不是只为单个选项卡实现 onTabChanged 侦听器。当我在多个选项卡上实现侦听器时,它会突然出现。就像我上面的问题一样^ :(只有
second监听器被调用,而不是tab#1 activity中的那个。 -
我不确定我是否理解您要执行的操作,但我想您可以在每个选项卡活动中进行验证(当用户在字段上操作时)并基于此,不断更新活动中的静态布尔标志(意味着字段的状态处于真/假状态)。然后,您可以检查父
OnTabChangedListener中这些布尔字段的状态并做任何您想做的事情。或者看看这个stackoverflow.com/questions/5399324/… -
@Luksprog 感谢您的回复。但首先:告诉我
OnTabChangedListener应该在父活动下还是在维护标签内容的3个活动下?哪种方法最适用?其次:我尝试将我的OnTabChangedListener放在父活动的onResume方法中,但这不起作用,而是出现空指针异常。 -
在父 Activity 中制作选项卡时(onCreate?)。
标签: java android tabs listener android-tabhost