2 qq 33804558 qq_33804558 于 2016.01.20 20:42 提问

安卓中onActivityResult方法无法获取返回的resultCode和data问题,求解
                A:MainActivity   B:LoginActivity   RESULT_OK=2

具体代码如下:
MainActivity.this.startActivityForResult(new Intent(MainActivity.this,LoginActivity.class), ConnUtil.RESULT_OK);

        Intent intent=new Intent();
        intent.putExtra("uNumer", uNumer);
        LoginActivity.this.setResult(ConnUtil.RESULT_OK, intent);
        LoginActivity.this.finish();

        @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    if (resultCode==ConnUtil.RESULT_OK) {//取出的resultCode为0,data 为空
        String uNumer=data.getStringExtra("uNumer");
    }
    super.onActivityResult(requestCode, resultCode, data);
}


<activity
        android:name="com.example.activity.MainActivity"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

            <activity
        android:name="com.example.activity.LoginActivity"
        android:label="@string/title_activity_login">
    </activity>

3个回答

devmiao
devmiao   Ds   Rxr 2016.01.20 20:49
qq_33804558
qq_33804558 我写的代码和网页上的是一样的啊
2 年多之前 回复
qq_21504369
qq_21504369   2016.01.20 22:44

你是不是少写了一个判断? 你没有判断requestCode ,应该在 //if (resultCode==ConnUtil.RESULT_OK ) 前面加一个判断

你试试,我也是新手

qq_33804558
qq_33804558 我解决了,原因是我在调用LoginActivity.this.setResult(ConnUtil.RESULT_OK, intent);之前调用了finish(),不过还是谢谢了
2 年多之前 回复
crazy1235
crazy1235   Ds   Rxr 2016.02.01 14:00

应该在setResult**之后**调用finish方法、

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android中的onActivityResult和setResult方法的使用
如果你想在Activity中得到新打开Activity 关闭后返回的数据,你需要使用系统提供的startActivityForResult(Intent intent,int requestCode)方法打开新的Activity,新的Activity 关闭后会向前面的Activity 传回数据,为了得到传回的数据,你必须在前面的Activity中重写onActivityResult(int
安卓开发——onActivityResult中requestcode与resultcode区别
运用startActivityForResult(Intent intent,int RequestCode)用于启动另一个activity并等待其返回的结果,毋庸置疑,intent用于启动目标activity,而RequestCode的作用是什么呢? 由于每个activity都可以启动任意的子activity并等待结果,而结果处理函数只有一个onActivityResult(int req
请求码(requestCode)与结果码(resultCode)解析
Android apk开发中经常需要在活动(Activity)之间穿梭,并实现活动之间的数据传递。为了启动一个新的活动并得到该活动的返回数据,需调用方法startActivityForResult(),该方法的原型为: void startActivityForResult (Intent intent, int requestCode) 同时在原活动中利用方法onActivity
Android onActivityResult获取返回值的用法
现有MainActivity,当它进入到SecondActivity后,在SecondActivity中进行了某些操作然后需要将值返回给MainActivity时, 于是就可以用到onActivityResult() 这个方法了,下面呢,我就具体来介绍一下用法。 1、MainActivity里面的主要代码 (1)当需要返回值时,那么在启动另一个Activity时要用到startActiv
Android_照相机Camera_使用intent调用系统照相机在onActivityResult返回data为空
本博文为子墨原创,转载请注明出处! http://blog.csdn.net/zimo2013/article/details/16916279 1.调用系统照相机 [java] view plaincopy //实例化一个intent,并指定action   Intent intent = new Intent
关于Activity使用startActivityForResult()跳转后,onActivityResult()无法响应RESULT_OK的原因
最近碰到这个问题, 然后Google一番. 于是记录下来.  去翻Android Developers网站的Reference, 在Activity的介绍中有段文字如下: 意思是当Activity的启动模式是singleTask时,这个Activity不会运行在该task任务栈中.并且会马上收到一个cancel result的信号.这就是原因了.比如Activity A
android onActivityResult data 取不到值 返回Null
从A跳到B 当B进行setResult的时候需要在finish之前设置。否则。。。。。。。。。data为空  resultCode都取不到
startActivityForResult() 中requestCode 和 resultCode 的作用
---------------------------------------------------------------------------------------------------------------------------------------------------- 以下转自:http://www.dewen.org/q/8896 由于本人初来乍到可能回答有些
onActivityResult中resultCode老是等于0
今天在项目发现,我在onActivityResult等返回resultCode总是0,想不通,更奇怪的在乐视1s手机上,却可以正常返回resultCode,在三星GT-N7100上不行,老是resultCode=0,同样的代码,在两个不同手机出现不一样的结果,反正不是我想看到的,最后网上找了些资料看了下,是和acitivty的launchMode有关,我两个activity   A和B,都是lau
Android调用系统相机onActivityResult返回参数data为null
一般调用系统相机的代码: filePath = ImageUtil.getCacheFilePath(this, StaticValue.PHOTO_PROTOCOL_ENTRUST); File file = new File(filePath); Intent intentFromCapture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);