0

尽管关于这个主题有几个问题,但我找不到正确的答案。

我有一个主要活动(这是选项卡视图中的一项活动),我从中调用登录活动。

    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):开始活动:Intent { cmp=app.sample/.ChildLogin }

WARN/ActivityManager(59): startActivity 从非 Activity 上下文中调用;强制 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


上面是我点击按钮时得到的日志。我可以看到活动存在一些问题..有任何答案吗?

4

2 回答 2

1

我想你的问题现在已经解决了。我对您的代码进行了一些修改,现在调用了 onActivityResult(检查修改后的代码:http ://www.4shared.com/file/_VR3zi28/CopySampleApptar.html ?):

1.-当你调用登录活动类时使用:getParent().startActivityForResult(myIntent, 1001);

我对 Android 不是很熟练,但我知道控制活动之间流的一个是 ActivityGroup 类,所以你应该使用 ActivityGroup 实例来启动活动。在上一行中,getParent() 引用了 ActivityGroup。

2.-因为您使用的是 ActivityGroup 实例,所以您的 onActivityResult 也必须放在该类中。

于 2011-06-15T09:30:13.037 回答
0

考虑更换线路

        Intent Ireturn = new Intent();
        setResult(RESULT_OK,Ireturn);

setResult(RESULT_OK,getIntent());    

getIntent() 返回启动 Login 的 Activity。

于 2011-06-14T16:57:02.233 回答