2017-06-12 2 views
0

レイアウトに2つのテキストビューと2つのボタンがあります。データピッカーをポップアップし、最終的に特定のテキストビューになるように設定するボタンをクリックします。日付データピッカーを使用中に変更されない

例:

Button1のは

をtextview2に設定Textview1 ボタン2のchhose日に設定された日付を選択するが、問題が正しく動作して初めてですが、私は2回目をしようとした場合Textview2に設定ボタン1が、値を変更してみてください。

初回のみ動作良好です.Plzガイド私はよりリークなステップバイステップ基本的な質問申し訳ありません。

// display current date 
    public void setCurrentDateOnView() { 

     tvDisplayDate = (TextView) findViewById(R.id.tvDate); 
     tvDisplayDate2 = (TextView) findViewById(R.id.tvDate2); 

     final Calendar c = Calendar.getInstance(); 
     year = c.get(Calendar.YEAR); 
     month = c.get(Calendar.MONTH); 
     day = c.get(Calendar.DAY_OF_MONTH); 

     // set current date into textview 
     tvDisplayDate.setText(new StringBuilder() 
       // Month is 0 based, just add 1 
       .append(month + 1).append("-").append(day).append("-") 
       .append(year).append(" ")); 

     tvDisplayDate2.setText(tvDisplayDate.getText().toString()); 
    } 

    public void addListenerOnButton() { 

     btnChangeDate = (Button) findViewById(R.id.btnChangeDate); 

     btnChangeDate.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 

       showDialog(DATE_DIALOG_ID); 

      } 

     }); 
     btnChangeDate2 = (Button) findViewById(R.id.btnChangeDate2); 

     btnChangeDate2.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 

       showDialog(DATE_DIALOG_ID2); 


      } 

     }); 

    } 

    protected Dialog onCreateDialog(int id) { 
     switch (id) { 

      case DATE_DIALOG_ID: 
       System.out.println("onCreateDialog : " + id); 
       cur = DATE_DIALOG_ID; 
       // set date picker as current date 
       return new DatePickerDialog(this, datePickerListener, year, month, 
         day); 
      case DATE_DIALOG_ID2: 
       cur = DATE_DIALOG_ID2; 
       System.out.println("onCreateDialog2 : " + id); 
       // set date picker as current date 
       return new DatePickerDialog(this, datePickerListener, year, month, 
         day); 

     } 
     return null; 
    } 


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

     // when dialog box is closed, below method will be called. 
     public void onDateSet(DatePicker view, int selectedYear, 
           int selectedMonth, int selectedDay) { 

      year = selectedYear; 
      month = selectedMonth; 
      day = selectedDay; 

      if (cur == DATE_DIALOG_ID) { 
       // set selected date into textview 
       tvDisplayDate.setText(new StringBuilder().append(month + 1) 
         .append("-").append(day).append("-").append(year) 
         .append(" ")); 
       System.out.println("A"); 
       System.out.println(cur); 
      } 

      if (cur == DATE_DIALOG_ID2){ 
       tvDisplayDate2.setText(new StringBuilder().append(month + 1) 
         .append("-").append(day).append("-").append(year) 
         .append(" ")); 
       System.out.println("B"); 
       System.out.println(cur); 
      } 

     } 
    }; 

にShowDialog();非推奨のメッセージ

onCreateDialog非推奨メッセージ

にShowDialog()のパラメータは、クリック

+0

でのTextView日付を設定する2各DatePickerDialogためdatePickerListenerとdatePickerListenerライトコードの内部を作成します。 –

+0

あなたは私があなたを得ることができない説明PLZすることができます –

答えて

0
 private DatePickerDialog.OnDateSetListener datePickerListener1 = new DatePickerDialog.OnDateSetListener() { 

    // when dialog box is closed, below method will be called. 
    public void onDateSet(DatePicker view, int selectedYear, 
          int selectedMonth, int selectedDay) { 
     year = selectedYear; 
     month = selectedMonth; 
     day = selectedDay; 
      // set selected date into textview 
      tvDisplayDate.setText(new StringBuilder().append(month + 1) 
        .append("-").append(day).append("-").append(year) 
        .append(" ")); 

     } 
}; 

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

    // when dialog box is closed, below method will be called. 
    public void onDateSet(DatePicker view, int selectedYear, 
          int selectedMonth, int selectedDay) { 

     year = selectedYear; 
     month = selectedMonth; 
     day = selectedDay; 

      tvDisplayDate2.setText(new StringBuilder().append(month + 1) 
        .append("-").append(day).append("-").append(year) 
        .append(" ")); 
     } 

    } 
}; 


protected Dialog onCreateDialog(int id) { 
    switch (id) { 

     case DATE_DIALOG_ID: 
      System.out.println("onCreateDialog : " + id); 
      cur = DATE_DIALOG_ID; 
      // set date picker as current date 
      return new DatePickerDialog(this, datePickerListener1, year, month, 
        day); 
     case DATE_DIALOG_ID2: 
      cur = DATE_DIALOG_ID2; 
      System.out.println("onCreateDialog2 : " + id); 
      // set date picker as current date 
      return new DatePickerDialog(this, datePickerListener2, year, month, 
        day); 

    } 
    return null; 
} 
+0

おかげで兄弟! –

+0

ようこそ@teddycherrykj –

0

日付ピッカー

btnChangeDate.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Calendar calender = Calendar.getInstance(); 


      int mYear = calender.get(Calendar.YEAR); 
      int mMonth = calender.get(Calendar.MONTH); 
      int mDay = calender.get(Calendar.DAY_OF_MONTH); 

      DatePickerDialog mDatePicker = new DatePickerDialog(SubscriptionActivity.this, new DatePickerDialog.OnDateSetListener() { 
       public void onDateSet(DatePicker datepicker, int selectedyear, int selectedmonth, int selectedday) { 
        // TODO Auto-generated method stub 
       /*  Your code to get date and time */ 
        tvDisplayDate.setText((selectedmonth + 1) + "-" 
          + selectedday + "-" + selectedyear); 

       } 
      }, mYear, mMonth, mDay); 



      mDatePicker.show(); 
     } 
    }); 
0
を使用して日付を設定するためのコードの下の使用時には変更されません。

スイッチケースにブレークを入れて

break; 

最終的なコードは

protected Dialog onCreateDialog(int id) { 
     switch (id) { 

      case DATE_DIALOG_ID: 
       System.out.println("onCreateDialog : " + id); 
       cur = DATE_DIALOG_ID; 
       // set date picker as current date 
       return new DatePickerDialog(this, datePickerListener, year, month, 
         day); 
        break; 
      case DATE_DIALOG_ID2: 
       cur = DATE_DIALOG_ID2; 
       System.out.println("onCreateDialog2 : " + id); 
       // set date picker as current date 
       return new DatePickerDialog(this, datePickerListener, year, month, 
         day); 
     break; 
     } 
     return null; 
    } 
0
btnChangeDate.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

     // Get Current Date 
     final Calendar c = Calendar.getInstance(); 
     mYear = c.get(Calendar.YEAR); 
     mMonth = c.get(Calendar.MONTH); 
     mDay = c.get(Calendar.DAY_OF_MONTH); 


     DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(), 
       new DatePickerDialog.OnDateSetListener() { 

        @Override 
        public void onDateSet(DatePicker view, int year, 
              int monthOfYear, int dayOfMonth) { 
         tv_data.setText(dayOfMonth + "/" + (monthOfYear + 1) + "/" + year); 
        } 
       }, mYear, mMonth, mDay); 
     datePickerDialog.show(); 

     } 

    }); 
関連する問題