活动组中的onActivityResult

时间:2012-12-30 14:13:50

标签: android activitygroup

on ActivityResult()方法,写在一个永远不会调用的childActivity中

我的TabGrpActivity扩展了ActivityGroup。

public class TabGroupActivity extends ActivityGroup 

{     private ArrayListmIdList;

@Override
protected void onCreate(Bundle savedInstanceState) 
{
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);

    if(mIdList==null)
        mIdList = new ArrayList<String>();
    obj = new ScheduleView();
    startChildActivity("Activity1", new Intent(this,Activity1.class));
}


public void startChildActivity(String Id,Intent intent)
{
    Window window = getLocalActivityManager().startActivity(Id, 
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
    if(window!=null)
    {
        mIdList.add(Id);
        setContentView(window.getDecorView());
    }
}

在我的Activity1(子活动)中使用startActivityForresult()调用另一个活动..代码如下所示。

mybund.putString("event", obj_rowitem.getevent());
Intent schedule = new Intent(getApplicationContext(), Activity2.class);
schedule.putExtras(mybund);
startActivityForResult(schedule, req_code);

我也在Activity1中写了一个onActivityResult方法,下面给出了代码

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{

    year = data.getExtras().getInt("year");
    month=data.getExtras().getInt("month");
    date=data.getExtras().getInt("date");
    String getdate=year+"-"+month+"-"+date;
    readschedules(getdate);
    rowitems=getdata(getdate);
    listview.setAdapter(new CustomView(getApplicationContext(), rowitems));

}

一件事是我将Activity2称为一个简单的活动,而不是一个儿童活动......

这里我的问题是...在Activity2中调用setResult()之后控件将进入....

我不理解life cylcle ActivityGroup ..

1 个答案:

答案 0 :(得分:0)

您应该使用活动上下文而不是应用程序上下文,这样它会将结果返回到正确的活动。 所以:

Intent schedule = new Intent(this, Activity2.class);

或:

Intent schedule = new Intent(Activity1.this, Activity2.class)

有关更多信息,请阅读有关不同背景的信息。