问题描述
|
尽管有关此主题有几个问题,但我找不到正确的答案。
我有一个主要活动(这是选项卡视图中的一个活动),在该活动中我称为登录活动。
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。