interface Selection { public voID clicked();}public class ParentClass extends FragmentActivity { // fTabs : FragmentTabHost // tabs : Map<String,Selection> private voID initialize() { // fistFrag : FirstChildClass = new FirstChildClass() // secondFrag : SecondChildClass = new SecondChildClass() tabs.put("first",firstFrag); tabs.put("second",secondFrag); fTabs.add(fTab.newTabSpec("first").setTitle("First"),firstFrag.getClass(),null) fTabs.add(fTab.newTabSpec("second").setTitle("Second"),secondFrag.getClass(),null) } @OverrIDe public voID onBackpressed() { tabs.get(fTabHost.getCurrentTabTag()).clicked(); }} public class FirstChildClass extends Fragment implements Selection { // data : TextVIEw // hit : int = 0 @OverrIDe public voID clicked() { data.setText(String.format("Hit Count: %d",++hit)); } }public class SecondChildClass extends Fragment implements Selection { // data : TextVIEw // hit : int = 0 @OverrIDe public voID clicked() { data.setText(String.format("Hit Count: %d",++hit)); } }
我试图通过在Logcat上调用消息来确保clicked()工作视图接口方法并且它工作但是当我使用button时,上面的错误总是提示我.我已检查数据是否为null并返回true.我有点困惑,我试图检查来自Activity方法的数据的无效性返回false但是当我通过接口访问任何方法覆盖时它总是返回true.有办法解决这个问题吗?
解决方法 这是我的朋友告诉我解决这个问题的方式.使用getSupportFragmentManager.他还告诉我,使用其构造函数创建Activity或Fragment不适用于AndroID平台.所以我转而采用向FragmentTabHost添加标签的传统方式.@OverrIDepublic voID onBackpressed() { //tabs.get(fTabHost.getCurrentTabTag()).clicked(); ((Selection) getSupportFragmentManager().findByFragmentByTag(fTabHost.getCurrentTabTag()).clicked();}总结
以上是内存溢出为你收集整理的Android接口全部内容,希望文章能够帮你解决Android接口所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)