虽然关于这个主题有几个问题,但我找不到合适的答案。
我有一个主要活动(这是tabview中的一个活动),我从那里调用登录活动。
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有什么问题。有什么答案吗?
答案 0 :(得分:1)
我认为你的问题现在已经解决了。我对您的代码进行了一些修改,现在调用onActivityResult(检查修改后的代码:http://www.4shared.com/file/_VR3zi28/CopySampleApptar.html?):
1.-当你调用Login活动类时,使用:getParent()。startActivityForResult(myIntent,1001);
我不熟悉Android,但我知道控制活动之间的流程的是ActivityGroup类,因此您应该使用ActivityGroup实例启动活动。在上一行中,getParent()引用了ActivityGroup。
2. - 因为您使用ActivityGroup实例,所以您的onActivityResult也必须放在该类中。
答案 1 :(得分:0)
考虑更换行
Intent Ireturn = new Intent();
setResult(RESULT_OK,Ireturn);
带
setResult(RESULT_OK,getIntent());
getIntent()返回启动Login的活动。