2013-01-03 2 views
0

datepicker가 일부 날짜와 함께 선택되면 textview를 업데이트하려고합니다. 그러나 그것은 textview가 업데이트되지 않습니다. 두 개의 다른 텍스트 뷰를 업데이트하기 위해 두 개의 날짜 선택기를 가져 가고 있습니다. 다음은 TextViews 업데이트하는 내 코드입니다 :DatePicker가 Android에서 Textview를 업데이트하지 않습니다.

public class SearchingActivity extends Activity { 
    static final int DATE_PICKER_TO = 0; 
    static final int DATE_PICKER_FROM = 1; 

    private int fYear; 
    private int fMonth; 
    private int fDay; 
    private int tYear; 
    private int tMonth; 
    private int tDay; 
    TextView txtFrom; 
    TextView txtTo; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
       WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     setContentView(R.layout.layout_search); 
     ImageButton btnFrom = (ImageButton) findViewById(R.id.btnDatePicker1); 
     btnFrom.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       // TODO Auto-generated method stub 
       showDialog(DATE_PICKER_FROM); 
      } 
     }); 
     ImageButton btnTo = (ImageButton) findViewById(R.id.btnDatePicker2); 
     btnTo.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       // TODO Auto-generated method stub 
       showDialog(DATE_PICKER_TO); 
      } 
     }); 
     txtFrom = (TextView) findViewById(R.id.lblsDate); 
     txtTo = (TextView) findViewById(R.id.lbleDate); 
     Button btnSubmit = (Button) findViewById(R.id.btnSubmitDate); 
     btnSubmit.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View arg0) { 
       // TODO Auto-generated method stub 
       Intent intent = new Intent(getApplicationContext(), 
         MixTourListActivity.class); 
       String varSDate = txtFrom.getText().toString(); 
       String varEDate = txtTo.getText().toString(); 
       intent.putExtra("startDate", varSDate); 
       intent.putExtra("endDate", varEDate); 
       startActivity(intent); 
      } 
     }); 
     final Calendar c = Calendar.getInstance(); 
     fYear = c.get(Calendar.YEAR); 
     fMonth = c.get(Calendar.MONTH); 
     fDay = c.get(Calendar.DAY_OF_MONTH); 
     tYear = c.get(Calendar.YEAR); 
     tMonth = c.get(Calendar.MONTH); 
     tDay = c.get(Calendar.DAY_OF_MONTH); 
     updateStartDisplay(); 
     updateEndDisplay(); 
    } 

    private void updateEndDisplay() { 
     // TODO Auto-generated method stub 
     txtFrom.setText(new StringBuilder() 
       // Month is 0 based so add 1 
       .append(fMonth + 1).append("-").append(fDay).append("-") 
       .append(fYear).append(" ")); 
    } 

    private void updateStartDisplay() { 
     // TODO Auto-generated method stub 
     txtTo.setText(new StringBuilder() 
       // Month is 0 based so add 1 
       .append(tMonth + 1).append("-").append(tDay).append("-") 
       .append(tYear).append(" ")); 
    } 

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

     public void onDateSet(DatePicker view, int year, int monthOfYear, 
       int dayOfMonth) { 
      fYear = year; 
      fMonth = monthOfYear; 
      fDay = dayOfMonth; 
      updateStartDisplay(); 
     } 
    }; 
    private DatePickerDialog.OnDateSetListener tDateSetListener = new DatePickerDialog.OnDateSetListener() { 

     public void onDateSet(DatePicker view, int year, int monthOfYear, 
       int dayOfMonth) { 
      tYear = year; 
      tMonth = monthOfYear; 
      tDay = dayOfMonth; 
      updateEndDisplay(); 
     } 
    }; 

    @Override 
    protected Dialog onCreateDialog(int id) { 
     switch (id) { 
     case DATE_PICKER_FROM: 
      return new DatePickerDialog(this, fDateSetListener, fYear, fMonth, 
        fDay); 
     case DATE_PICKER_TO: 
      return new DatePickerDialog(this, tDateSetListener, tYear, tMonth, 
        tDay); 
     } 
     return null; 
    } 

} 
+0

이 http://stackoverflow.com/questions/3734981/multiple-datepickers-in U에 도움이 될 것입니다 -same-activity –

답변

0

당신의 fDateSetListener 있습니다

fYear = year; 
fMonth = monthOfYear; 
fDay = dayOfMonth; 
updateStartDisplay(); 

updateStartDisplay()을했다 : 그래서 tMonth와 가족

txtTo.setText(new StringBuilder() 
// Month is 0 based so add 1 
.append(tMonth + 1).append("-").append(tDay).append("-") 
.append(tYear).append(" ")); 

전화 할 때 설정되지 않습니다 이 fMonth과 형제가 있습니다.

tDateSetListener과 유사한 이유입니다. 사실상,에 설정된 변수를 반대로 바꾸십시오.

tYear = year; 
tMonth = monthOfYear; 
tDay = dayOfMonth; 
updateStartDisplay(); 

을 그리고 당신의 tDateSetListener가 있어야한다 :

귀하의 fDateSetListener이 있어야한다

fYear = year; 
fMonth = monthOfYear; 
fDay = dayOfMonth; 
updateEndDisplay(); 
+0

나는 단지 그것을 빨리했고 틀리게 썼다. 감사... – Dhwani

관련 문제