Android activitygroup子活动中的datepicker引发BadTokenException错误
我需要在选项卡式活动中activitygroup的子活动中显示两个日期选择器。 显示日期的两个TextView和to按钮的代码为: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_
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;
}