今天被TabActivity折服了,在Tab的选项卡所在的activity里面调用startActivityForResult 方法,然后在该activity里面重写了onActivityResult 方法 ,不论我怎么测试 就是不执行onActivityResult 回调方法 ,在一般的activity里面却可以。最后无赖,想到会不会是TabActivity太特殊了,果不其然。
1.我将startActivityForResult 的目标Activity 的启动模式设置成了singleInstance。
调试了N久也没也没找到哪里出错,后来只好Google,不经意间看到一个随笔,说跟加载模式有关,原来,需要用这样的方法来传值的Activity,的加载模式什么都不能设置,或者设置成标准的模式,不能是singleInstance
于是乎,改之,结果还是不行,后来又发现如下解决办法:
解决办法如下:
1.通过父Activity启动其他Activity;
2.实现父Activity的onActivityResult方法,将该处接收到的请求转发给当前活动的子Activity;
3.自定义一个转发接口用来实现第2步中的转发功能;
4.子Activity中实现第3步接口中的方法用来接收返回信息;
代码如下:
1.通过父Activity启动其他Activity
1 getParent().startActivityForResult(new Intent(...), REQUEST_CODE);
2.实现父Activity的onActivityResult方法
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// 获取当前活动的Activity实例
Activity subActivity = getLocalActivityManager().getCurrentActivity();
//判断是否实现返回值接口
if (subActivity instanceof OnTabActivityResultListener) {
//获取返回值接口实例
OnTabActivityResultListener listener = (OnTabActivityResultListener) subActivity;
//转发请求到子Activity
listener.onTabActivityResult(requestCode, resultCode, data);
}
super.onActivityResult(requestCode, resultCode, data);
}
3.自定义接口来实现
/**
* 解决子Activity无法接收Activity回调的问题
* @author Administrator
*
*/
public interface OnTabActivityResultListener {
public void onTabActivityResult(int requestCode, int resultCode, Intent data);
}
4.子Activity需要实现onTabActivityResult方法
@Override
public void onTabActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
//实现该处逻辑 ...
}
}
终于,问题解决之,但是后来在子Tab中的ListView要实现长按弹出对话框功能,问题又来了。莫名其妙的报错,后来发现还是需要用父类去调用 this.getParent().setOnItemLongClickListener(...........)
分享到:
相关推荐
6.1 开发入门:第一个json 新建一个扩展名json的文件,如one.json(下图) 然后录入如下内容 {"item":{ <chtml> <!-- 数据准备部分,您可以从数据库中查询 --> <bag id=item suffix=0> <we name=name>土豆</we> ...
《Android开发案例驱动教程》 配套代码。 注: 由于第12,13,14章代码太大,无法上传到一个包中。 这三节代码会放到其他压缩包中。 作者:关东升,赵志荣 Java或C++程序员转变成为Android程序员 采用案例驱动模式...
这一联盟将会支持 Google 发布的 Android 手机操作系统或者应用软件,共同开发名为 Android 的 开 放源代码的移动系统。开放手机联盟包括手机制造商、手机芯片厂商和移动运营商几类。目前,联盟成员 数 量已经达到了...
在软件开发过程中,在Debug下调试好...<br><br>支持包含、不包含过滤,能去掉多作的调试信息,快速找到您好的调试信息。<br>支持调试信息文件存储操作。您可以通知客户记录好调试输出信息文件,分析软件中存在的缺陷。
这里记录在Android开发中经常用到的一些用法 arrays.xml定义数组 例: <resources> <!-- share items --> <string name=app_share_items> <item>新浪微博</item> <item>腾讯微博</item> </string> </...
Android 开发记录文档 Android 开发记录文档 Android 开发记录文档 Android 开发记录文档
AndroidQuery 一个轻量级的库,用于实现 Android 上的异步任务和操作 UI 元素。 项目含有26 个文件源文件,分析如下: auth含有: public class WebDialog extends Dialog 对话框显示网页信息 public class ...
Android开发手机通话记录获取方法,通过本文档能让你快速了解Android App开发中获取手机通话记录的基本知识
平时开发工作中遇到开发的问题,自己记录下来方便工作的开发,android记录表,希望对平时开发新人员来说有帮助的作用,也许合适,也是不太适合,如果下载了没有帮助选择忽视,有帮助的话就最好。
Android非凡行车记录仪源码,适用于所有类似行车记录仪的应用,包含后台录像、录音等强大功能。录像方案有基于camera2的实现、基于opengles的实现,非常适合相关项目开发者进行参考和复用,也可直接基于此项目进行二...
2、 练习目标 ... 使用广播处理处理事件 ...手机最重要的功能就是通话功能,同样储存通话记录也是必不可少的。该案例使用广播接收者自己实现通话记录的功能。包括呼出电话、已接来电、未接来电以及通话产生的时间。
基于android开发的一个新闻资讯app(新闻资源来自聚合数据),里面还有历史记录和收藏,以及登录注册,数据库用到sqlite; 基于android开发的一个新闻资讯app(新闻资源来自聚合数据),里面还有历史记录和收藏,...
一款旅游路线记录与分享的Android应用,支持路线规划和分享、旅游过程记录和旅游社交等功能, 旨在为用户提供一个方便快捷的旅游私人订制、记录和分享的应用
Android游戏开发第一次会议记录.txt
开发Android项目过程中遇到的错误。
由于界面设置繁琐,代码页过多,所以挑出其中的一部分进行说明 首先是DB数据库建库过程: Android开发实验---通讯录全文共25页,当前为第3页。package com.xample.hivian.my_contact_manager.models.db; import ...
<<Android应用开发记录-字幕播放器(4)完成>>配合的工程文件,源码,用于动作确认的歌曲及歌词 另外,工程是针对Android2.2建立的。 如果想在Android2.1运行,可以修改工程文件或从下面地址下载针对2.1做的安装包,...
设计和实现一个类似个人备忘录的 Android APP ,数据库采用 SQLite (也可以直接访问 Web 端 MySQL 数据库、或提供 Web 接口访问 MySQL 数据库)。 1.用户注册和登录(这类 APP 一般面对个人,用户不需要分类别); ...