Android activitygroup子活动中的datepicker引发BadTokenException错误

Android activitygroup子活动中的datepicker引发BadTokenException错误,android,datepicker,activitygroup,Android,Datepicker,Activitygroup,我需要在选项卡式活动中activitygroup的子活动中显示两个日期选择器。 显示日期的两个TextView和to按钮的代码为: incorp_date=(TextView)findViewById(R.id.edt_incorpdate); incorp_date_image=(Button)findViewById(R.id.incorp_date); incorp_date_cal=Calendar.getInstance(); incorp_date_

我需要在选项卡式活动中activitygroup的子活动中显示两个日期选择器。 显示日期的两个TextView和to按钮的代码为:

  incorp_date=(TextView)findViewById(R.id.edt_incorpdate);
    incorp_date_image=(Button)findViewById(R.id.incorp_date);


    incorp_date_cal=Calendar.getInstance();

    incorp_date_image.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            showDialog(DATE_PICKER_INCORP);
        }
    });

    final Calendar c = Calendar.getInstance();
    incorp_year = c.get(Calendar.YEAR);
    incorp_month = c.get(Calendar.MONTH);
    incorp_day = c.get(Calendar.DAY_OF_MONTH);

    /* display the current date (this method is below)  */
    updateIncorpDisplay();


    estb_date=(TextView)findViewById(R.id.edt_estabdate);
    estb_date_image=(Button)findViewById(R.id.estb_date);
    estb_date_cal=Calendar.getInstance();

    estb_date_image.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            showDialog(DATE_PICKER_ESTB);
        }
    });
    final Calendar c1 = Calendar.getInstance();
    estb_year = c1.get(Calendar.YEAR);
    estb_month = c1.get(Calendar.MONTH);
    estb_day = c1.get(Calendar.DAY_OF_MONTH);

    /* display the current date (this method is below)  */
    updateEstbDisplay();
显示日期选择器对话框的代码为:

incorp_dateListener=new OnDateSetListener() {

        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear,
                int dayOfMonth) {
            // TODO Auto-generated method stub
            incorp_year = year;
            incorp_month = monthOfYear;
            incorp_day = dayOfMonth;
            updateIncorpDisplay();
        }
    };

    estb_dateListener=new OnDateSetListener() {

        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear,
                int dayOfMonth) {
            // TODO Auto-generated method stub
            estb_year = year;
            estb_month = monthOfYear;
            estb_day = dayOfMonth;
            updateEstbDisplay();
        }
    };
  @Override
protected Dialog onCreateDialog(int id) {

    switch(id){
        case DATE_PICKER_INCORP:
                return new DatePickerDialog(getParent(), incorp_dateListener, incorp_year, incorp_month, incorp_day); 
            case DATE_PICKER_ESTB:
                return new DatePickerDialog(getParent(), estb_dateListener, estb_year, estb_month, estb_day);
    }
        return null;
}
我无法显示日期选择器对话框。 当我单击按钮并引发BadTokenException异常时,应用程序强制关闭。。 我该怎么办???我似乎不知道问题出在哪里??? 我想可能是因为这是一个活动团体的儿童活动。。 但是找不到任何相关的解决办法。。
请帮忙

像这样做


我从

中得到了这个解决方案。尝试类似的方法,首先在TabActivity类中创建tabcontext对象

package com.loanreminder;

import android.app.TabActivity;
import android.os.Bundle;

/**
 * @author Adil Soomro
 * 
 */
public class TabSample extends TabActivity {
    /** Called when the activity is first created. */
    public static TabSample tabContext;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tabhost);
        tabContext = this;

    }

}
在活动中这样使用此对象之后

protected Dialog onCreateDialog(int id) {

    switch(id){
        case DATE_PICKER_INCORP:
                return new DatePickerDialog(TabSample.tabContext, incorp_dateListener, incorp_year, incorp_month, incorp_day); 
            case DATE_PICKER_ESTB:
                return new DatePickerDialog(TabSample.tabContext, estb_dateListener, estb_year, estb_month, estb_day);
    }
        return null;
}
protected Dialog onCreateDialog(int id) {

    switch(id){
        case DATE_PICKER_INCORP:
                return new DatePickerDialog(TabSample.tabContext, incorp_dateListener, incorp_year, incorp_month, incorp_day); 
            case DATE_PICKER_ESTB:
                return new DatePickerDialog(TabSample.tabContext, estb_dateListener, estb_year, estb_month, estb_day);
    }
        return null;
}