`
wxlgzxx_1988
  • 浏览: 69097 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Android 开发问题记录<一>

阅读更多

今天被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(...........)
分享到:
评论

相关推荐

    Android无线点菜系统<源码>

    【Android无线点菜系统&lt;源码&gt;】是一个适用于移动开发领域的项目,主要目的是实现餐厅的电子化点菜功能。这个系统对于初学者来说是一个宝贵的参考资料,因为它提供了完整的代码实现,可以深入理解Android应用开发的...

    Android模拟器命令大全(word格式)

    Android模拟器是Android开发中一个非常重要的工具,能够模拟真实的Android设备,帮助开发者测试和调试应用程序。下面将对Android模拟器的命令进行详细的介绍。 一、模拟器和真机的不同之处 Android模拟器是一款...

    Android模拟器参数大全

    《Android模拟器参数详解》 ...总之,Android模拟器虽然在某些功能上与真实设备有所差距,但通过深入理解和利用其参数设置,开发者可以构建一个接近真实的测试环境,从而高效地进行Android应用的开发和测试工作。

    Android开发案例驱动教程 配套代码

    《Android开发案例驱动教程》 配套代码。 注: 由于第12,13,14章代码太大,无法上传到一个包中。 这三节代码会放到其他压缩包中。 作者:关东升,赵志荣 Java或C++程序员转变成为Android程序员 采用案例驱动模式...

    Android开发常见问题.doc

    错误信息中的日志记录进一步表明,在尝试启动HelloWorld项目的过程中遇到了这一问题。 #### 错误原因分析 当遇到此类错误时,问题的核心在于缺少与目标Android版本兼容的AVD。在本例中,目标版本为Android 1.5,而...

    新版Android开发教程.rar

    这一联盟将会支持 Google 发布的 Android 手机操作系统或者应用软件,共同开发名为 Android 的 开 放源代码的移动系统。开放手机联盟包括手机制造商、手机芯片厂商和移动运营商几类。目前,联盟成员 数 量已经达到了...

    Android开发中LogCat工具的使用

    在Android开发过程中,LogCat是一个不可或缺的调试工具。它是Android系统提供的一种命令行工具,用于收集应用程序和其他系统组件的log信息,帮助开发者跟踪程序运行状态,定位和解决问题。本文将详细介绍LogCat的...

    Android String字符串数组动态增加

    在Android开发中,String字符串数组是一种常见的数据结构,用于存储一系列相关的文本信息。在某些情况下,我们可能需要在运行时动态地向已存在的字符串数组中添加元素,而非仅仅在XML资源文件中静态定义。这就涉及到...

    对FacebookSDK的ReactNative封装支持Android和iOS的

    &lt;uses-permission android:name="android.permission.INTERNET" /&gt; &lt;application&gt; ... &lt;meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id" /&gt; ... &lt;/...

    Delphi-XE5-开发 Android URI简介

    这通常涉及到在 AndroidManifest.xml 文件中添加 `&lt;provider&gt;` 标签,并设置相关的属性,如 `android:mimeType`、`android:path`、`android:pathPattern`、`android:pathPrefix` 和 `android:scheme` 等。...

    基于Android Studio开发的旅游记录与分享APP源码,Android旅游路线记录与分享APP源码

    综上所述,这个基于Android Studio的旅游记录与分享APP涉及了众多Android开发的关键技术,包括地图集成、位置服务、数据存储、网络通信以及用户体验设计等多个方面,对于学习和提升Android开发能力具有很高的参考...

    Android-logback-android用于Android的可靠通用快速和灵活的日志记录框架

    综上所述,`logback-android`作为Android开发中的日志工具,提供了强大而灵活的解决方案,能够帮助开发者更好地调试、监控和分析应用程序的行为,提高开发效率和维护性。其丰富的特性、高效的性能以及强大的扩展性使...

    简单安卓命令

    3. 创建AVD可以使用`android create avd --name &lt;name&gt; --target &lt;target id&gt;`,其中`&lt;name&gt;`是模拟器名称,`&lt;target id&gt;`是系统列出的平台编号。 4. 启动模拟器时,可以使用`emulator -avd &lt;name&gt; -sdcard ~/&lt;name...

    android模拟器命令详解收集.pdf

    | -data [file] | 使用 &lt;file&gt; 当作用户数据的磁盘镜像 | 如果没有 -data,模拟器会在 ~/.android (Linux/Mac) 或 C:\Documents\&lt;user&gt;\LocalSettings\Android (Windows) 中查找文件名为” userdata.img ”的文件 | ...

    -android搜索历史记录提示,在edittext输入框中输入,会在本地保存,下次输入会自动提示.rar

    在Android开发中,提供搜索历史记录提示功能是一个常见的需求,特别是在需要用户输入查询内容的应用中。这个功能可以提升用户体验,因为它允许用户快速访问他们之前搜索过的条目,而无需重新输入整个查询。本教程将...

    Android GreenDao 使用全面讲解,基于android的app的设计与开发.pdf

    在Android应用开发中,GreenDao是一个非常流行的ORM(对象关系映射)库,它使得数据库操作变得更加简单和高效。在本文中,我们将深入探讨如何在Android应用中使用GreenDao进行数据管理和查询。 首先,让我们来看一...

    annotations解压包.rar

    在Android开发中,理解和正确处理这类资源编译错误至关重要,因为它直接影响到应用的构建和运行。保持良好的编程习惯,遵循XML规范,以及及时更新和优化代码,可以减少这类问题的发生。同时,利用Android Studio的...

    android开发工具-ADB

    总结起来,Android Debug Bridge(ADB)是Android开发者的重要辅助工具,它提供了一种便捷的手段来与Android设备进行交互,极大地简化了开发和调试过程。掌握ADB的使用,能有效提升开发效率,解决各种疑难问题。

    android adb命令参考

    通过ADB,开发者可以进行设备管理、应用安装调试等操作,是Android开发过程中不可或缺的一部分。 #### 二、常用ADB命令详解 ##### 1. 列出所有Android平台 ``` android list targets ``` 此命令用于列出当前安装的...

    android搜索框,带历史记录功能

    在Android应用开发中,搜索框(SearchView)是不可或缺的一部分,尤其对于那些需要提供用户查询功能的应用来说。本文将深入探讨如何在Android中创建一个带有历史记录功能的搜索框,并结合给定的"android搜索框,带...

Global site tag (gtag.js) - Google Analytics