2011-01-10 40 views
0

我想在類'dateDisplay.class'中創建一個DatePickerDialog。我從'main.class'調用這個活動。如果我使用startActivity()調用'dateDisplay.class',那麼DatePickerDialog工作正常。但實際上我正在使用的ActivityGroup(在我的應用程序中使用標籤),我用下面的代碼開始「dateDisplay.class」:DatePickerDialog中的異常

Intent dateIntent=new Intent(context,dateDisplay.class); 
    View v=getLocalActivityManager().startActivity("2",dateIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView(); 
    setContentView(v); 

但是,一個異常被捕獲,就調用onCreateDialog()函數。這個過程突然停止了。它顯示出現TargetInvocationException。我該如何糾正代碼? 以下是我的代碼:

public Dialog onCreateDialog(int id,Bundle b) 
    { 
     Calendar c=Calendar.getInstance(); 
     int day=c.get(Calendar.DAY_OF_MONTH); 
     int month=c.get(Calendar.MONTH); 
     int year=c.get(Calendar.YEAR); 
     Dialog d = null; 
     if(id==DATE_DIALOG_ID) 
     { 
      return new DatePickerDialog(this,dateChangeListener,year,month,day); 
     } 

     else 
     { 
       return null; 
     } 


    } 

請幫助我.. 謝謝。

+0

你可以發佈異常的完整的日誌問題? – Nanne 2011-01-10 06:43:53

回答

1

只是使用此代碼來解決

protected Dialog onCreateDialog(int id) { 

      Calendar c = Calendar.getInstance(); 
      int cyear = c.get(Calendar.YEAR); 
      int cmonth = c.get(Calendar.MONTH); 
      int cday = c.get(Calendar.DAY_OF_MONTH); 
      switch (id) { 
      case 0: 

      return new DatePickerDialog(this, mDateSetListener, cyear, cmonth, cday); 
      } 
      return null; 
      } 

      private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() { 

      public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { 
      String date_selected = String.valueOf(monthOfYear+1)+" /"+String.valueOf(dayOfMonth)+" /"+String.valueOf(year); 

      EditText birthday=(EditText) findViewById(R.id.EditTextBirthday); 
      birthday.setText(date_selected); 
      } 
      }; 
      public void onClick(View v) { 
      if(v == ((ImageView) findViewById(R.id.pickDate))) 
      showDialog(0); 

      } 

     }