2011-01-10 6 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

+0

関数を呼び出すとき、 'id'はDATE_DIALOG_IDと等しいですか? – Nanne

+0

IDとDATE_DIALOG_IDは1に等しい – Jomia

答えて

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

      } 

     } 
関連する問題