2013-05-22 4 views
2
나는 탭 활동에 activitygroup의 자식 활동이 datepickers을 표시해야

를 발생시킵니다. 두 textviews과 날짜를 표시하는 버튼에 대한 코드는 다음과 같습니다날짜 선택기는 BadTokenException 오류

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; 
} 

나는 날짜 선택기 대화 상자를 표시 할 수 없습니다입니다. i는 버튼을 클릭 BadTokenException의 예외가 발생할 때 적용력 닫을 .. 어떻게해야 ??? 나는 문제가 무엇인지에 관해 이해하는 것처럼 보인다? ??? 나는 생각 어쩌면 그 그것 때문에 자식 activitygroup .. 의 활동하지만 캔트 모든 관련 솔루션 .. 도와주세요 찾을 !!!!

답변

1

에서이 솔루션을 가지고이

 switch (id) { 
case DATE_DIALOG_ID: 
return new DatePickerDialog(getParent(), 
      mDateSetListener, 
      mYear, mMonth, mDay); 
case DATE_DIALOG_ID_RETURN: 
return new DatePickerDialog(getParent(), 
    mDateSetListenerreturn, 
      mYear, mMonth, mDay);  
} 

같은

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; 

    } 

} 

사용 후 귀하의 활동이처럼이 Object.

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; 
} 
+0

고마워요! 그것은 일했다! – shivani