android中使用startactivityforresult跳转Activity后需要重写onBackPressed()方法

在android项目中经常会用startactivityforresult从一个Activity跳转到另一个Activity(这里指Activity_A和Activity_B),你可以从Activity_B返回数据到Activity_A中,

但是如果直接按手机返回键,因为并没有返回内容给Activity_A,所以程序会报错。

这事可以通过在Activity_B中重写onBackPressed()方法解决问题,代码如下:

private int backCode = 1;

@Override
 public void onBackPressed() {
        intent = new Intent();
        this.setResult(backCode, intent);
        this.finish();
  }

Activity_A中主要代码如下:

private final int baseCode = 1;

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // 根据请求码来区别
        switch (resultCode) {
            case baseCode:
                //什么都不做
                break;
            default:
                break;
        }
    }    
时间: 2024-11-09 18:51:18

android中使用startactivityforresult跳转Activity后需要重写onBackPressed()方法的相关文章

Swift中使用presentViewController跳转页面后模拟器显示黑屏问题

Swift中使用presentViewController跳转页面后模拟器显示黑屏问题 问题原因 针对storyboard制作页面和手写页面,需要使用两种不同方法进行页面跳转. 解决办法 针对手写页面及storyboard制作页面,使用代码进行页面跳转的两种方法. 对于使用storyboard制作的页面 var sb = UIStoryboard(name: "Main", bundle:nil) var vc = sb.instantiateViewControllerWithIde

十九、android中判断sim卡状态和读取联系人资料的方法

在写程序中,有时候可能需要获取sim卡中的一些联系人资料.在获取sim卡联系人前,我们一般会先判断sim卡状态,找到sim卡后再获取它的资料,如下代码我们可以读取sim卡中的联系人的一些信息. PhoneTest.java package com.android.test; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.datab

android中判断sim卡状态和读取联系人资料的方法

在写程序中,有时候可能需要获取sim卡中的一些联系人资料.在获取sim卡联系人前,我们一般会先判断sim卡状态,找到sim卡后再获取它的资料,如下代码我们可以读取sim卡中的联系人的一些信息. PhoneTest.java package com.android.test; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.datab

Android中检查、监听电量和充电状态的方法

Android中检查.监听电量和充电状态的方法 这篇文章主要介绍了Android中检查.监听电量和充电状态的方法,如判断当前充电状态.监听充电状态的改变.判断当前剩余电量等,需要的朋友可以参考下 当你在更改后台更新频率来减少这些更新对电池寿命的影响时,检查当前电量和充电状态是一个好的开始. 电池寿命通过剩余电量和充电状态来影响应用更新的执行.当用交流电充电时,执行更新操作对设备的影响是微不足道的,所以在大多数案例里,你可以把更新频率调到最快.如果设备不在充电,降低更新频率可以帮助延长电池寿命.

android中使用intent来实现Activity带数据跳转

大家都知道startActivity()是用来切换跳转Activity的.如果想要在另个Activity中出书数据的话.只需要在源activity中使用intent.putExtra()方法传出数据.在对应activity中使用intent.get**Extra()方法接收数据就行了 那么startActivityForResult()方法呢.它也是用来带数据跳转activity的.可是这两个方法具体有什么区别呢? 这就要说说带数据跳转的方向了. 第一个方法只能把数据发送过去.可是如果子acti

android 通过子线程跳转activity并传递内容

android 子线程中不可以更新ui已经根深蒂固在我的脑海里,当时也就理所当然的认为子线程中也是不可以进行界面的跳转的,但是在后来的学习中,发现竟然是可以通过子线程来进行activity的跳转时,立马把我给震惊了.赶紧滚去写代码测试了下.结果真的可以.顿时泪奔.特此记录一下.与君共勉 activity: package com.example.testchildthreadgootheractivity; import android.app.Activity; import android.

Android中如何使用Intent在Activity之间传递对象[使用Serializable或者Parcelable]

http://blog.csdn.net/cjjky/article/details/6441104 在Android中的不同Activity之间传递对象,我们可以考虑采用Bundle.putSerializable(Key,Object);也可以考虑采用Bundle.putParcelable(Key, Object);其中前面一种方法中的Object要实现Serializable接口,后面一种方法中的Object要实现Parcelable接口.下面我们以一个完整的例子来说明. 1.新建一个A

android中最先被执行的activity

像C.C++.JAVA都有一个主函数作为程序的入口点,但是Android中并没有一个明确的主窗口,那么在有多个Activity的情况下,最先被执行的是哪个呢?这完全取决于配置文件AndroidMainfest.xml中的配置. 哪个Activity下有下面这段程序,哪个Activity就最先被加载 <intent-filter> <action android:name="android.intent.action.MAIN" /> <category a

android中传递复杂参数,Activity之间通过Intent使用bundle,fragment之间和Activityty通过setArguments使用bundle

在Android开发中,Activity之间通过Intent使用bundle,fragment之间和Activityty通过setArguments使用bundle,对于一些简单的参数传递比较简单,而且方式也有多种,这个就不介绍了.在这里介绍一下复杂的参数传递,比如传递集合ArrayList,对象ArrayList<Object>. 无论是Activity之间参数传递,还是Fragment之间参数传递,或者是Activity与Fragment之间,都要使用Bundle,方式基本相同.Bundl