微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

子活动调用finish之后,不会调用onActivityResult

如何解决子活动调用finish之后,不会调用onActivityResult

| 尽管有关此主题有几个问题,但我找不到正确的答案。 我有一个主要活动(这是选项卡视图中的一个活动),在该活动中我称为登录活动。
    Button chdbtn=(Button)findViewById(R.id.Add);
    chdbtn.setonClickListener(new OnClickListener() {   
        @Override
        public void onClick(View v) {
        Intent myIntent = new Intent(main.this,Login.class);
            startActivityForResult(myIntent,1001);
    }
    }); 


protected void onActivityResult(int requestCode,int resultCode,Intent data){
        if(requestCode == 1001)
        {
            if(resultCode == RESULT_OK)
            {
                          Log.i(\"Info\",\"Inside\");
            }
        }
}
在我的登录课程中,当我单击一个按钮时,我正在执行此操作
    Button chdbtn=(Button)findViewById(R.id.Addchild); 
    chdbtn.setonClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // Todo Auto-generated method stub
                Intent Ireturn = new Intent();
                setResult(RESULT_OK,Ireturn);
                finish();
        }
    });
但是,当我在登录活动中单击该按钮时,该控件未进入主要活动的onActivityResult方法。谁能指导我这是什么问题。 VIJAYapp.sample.ChildEntry1 $ 1 / onClick:23 INFO / ActivityManager(59):开始活动:目的{cmp = app.sample / .ChildLogin} WARN / ActivityManager(59):从非活动上下文中调用startActivity;强制Intent.FLAG_ACTIVITY_NEW_TASK用于:Intent {cmp = app.sample / .ChildLogin} DEBUG / PhoneWindow(999):无法保存哪个视图具有焦点,因为焦点视图com.android.internal.policy.impl.PhoneWindow$DecorView@43e4b620没有ID。 INFO / ActivityManager(59):显示的活动app.sample / .ChildLogin:460毫秒(总计460毫秒) INFO / VIJAY(999):VIJAYapp.sample.ChildLogin $ 1 / onClick:24 上面是单击按钮时得到的日志。我可以看到Activity ..有什么问题吗?     

解决方法

        我认为您的问题现在已经解决。我对您的代码进行了一些修改,现在调用了onActivityResult(检查修改后的代码:http://www.4shared.com/file/_VR3zi28/CopySampleApptar.html?): 1.-当您调用Login活动类时,请使用:getParent()。startActivityForResult(myIntent,1001); 我对Android并不是很熟练,但是我知道控制活动之间流程的一个是ActivityGroup类,因此您应该使用ActivityGroup实例启动活动。在上一行中,getParent()引用了ActivityGroup。 2-因为使用了ActivityGroup实例,所以onActivityResult也必须放在该类中。     ,        考虑更换线
        Intent Ireturn = new Intent();
        setResult(RESULT_OK,Ireturn);
setResult(RESULT_OK,getIntent());    
getIntent()返回启动Login的Activity。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?