2010-12-05 11 views
1

アラートダイアログから日付選択を開始しようとしています。何らかの理由でshowDialog(DATE_DIALOG_ID)がまったく開きません。何か間違っていることを教えてください。アラートダイアログからアンドロイドの日付ピッカー

final AlertDialog.Builder alt_bld = new AlertDialog.Builder(this); 
     alt_bld.setIcon(R.drawable.icon); 
     alt_bld.setTitle("Categories"); 
     alt_bld.setSingleChoiceItems(categoryType, -1, new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int item) { 
       System.out.println("Category selected= "+categoryType[item]); 
       Toast.makeText(getApplicationContext(), "Category selected= "+categoryType[item], Toast.LENGTH_SHORT).show(); 
       category=categoryType[item]; 


       if(category.equalsIgnoreCase("Time")){ 
        showDialog(DATE_DIALOG_ID); 
        System.out.println("selected date here:"+selectedDate); 
        Intent intent = new Intent(MainActivity.this, ListViewActivity.class); 
        bundle.putString("category", category); 
        bundle.putString("attribute", selectedDate); 
        intent.putExtras(bundle); 
        startActivity(intent); 

       } 

他の日付ピッカー関連のコードあなたのコードで

static final int DATE_DIALOG_ID = 0; 



@Override 
    protected Dialog onCreateDialog(int id) { 
     switch (id) { 
     case DATE_DIALOG_ID: 
      return new DatePickerDialog(this, 
         mDateSetListener, 
         mYear, mMonth, mDay); 
     } 
     return null; 
    } 


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


     public void onDateSet(DatePicker view, int year, 
           int monthOfYear, int dayOfMonth) { 
      mYear = year; 
      mMonth = monthOfYear; 
      mDay = dayOfMonth; 
      selectedDate = Integer.toString(mMonth)+"-"+Integer.toString(mDay)+"-"+Integer.toString(mYear); 
      System.out.println("selected date is:"+selectedDate); 
     } 


    }; 

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.homescreen); 

     final Calendar cal = Calendar.getInstance(); 
     mYear = cal.get(Calendar.YEAR); 
     mMonth = cal.get(Calendar.MONTH); 
     mDay = cal.get(Calendar.DAY_OF_MONTH); 

答えて

1

uはShowDialogの(int)を呼び出しています。新しい意図をすぐに打ち出します。あなたはどのようにダイアログを見ることを期待していますか?実際には、ダイアログが閉じられていないためにメモリリークが発生します。

+0

ちょっと勘違いしています...実りの...うまくいきました。 –