2017-10-04 39 views
0

以下是我的Datepicker代碼,允許用戶選擇日期並使用所選日期更新textview。當用戶選擇今天之前的日期時,如何使用錯誤消息更新textview?當用戶選擇日期之前,Android Java顯示錯誤消息

public void startCalender() { 

    txtTrigger = (TextView) findViewById(R.id.calTrigger); 
    final DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() { 
     @Override 
     public void onDateSet(DatePicker view, int year, int month, int day) { 
      myCalendar.set(Calendar.DAY_OF_MONTH, day); 
      myCalendar.set(Calendar.MONTH, month); 
      myCalendar.set(Calendar.YEAR, year); 
      updateLabel(); 
     } 
    }; 
    txtTrigger.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      new DatePickerDialog(DisplayCeeAct.this, date, 
        myCalendar.get(Calendar.YEAR), myCalendar.get(Calendar.MONTH), 
        myCalendar.get(Calendar.DAY_OF_MONTH)).show(); 
     } 
    }); 
} 

private void updateLabel() { 
    String no = "<font color='red'>NO</font>."; 
    String myFormat = "dd/MM/yy"; 
    SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.getDefault()); 

    if (myCalendar.after(myCalendar.getTime())){ 
     txtTrigger.setText(sdf.format(myCalendar.getTime())); 
    } 
    else { 
     txtTrigger.setText(Html.fromHtml(no), TextView.BufferType.SPANNABLE); 
    } 
} 
+0

爲什麼不這項工作? –

+0

比較日期。 'calendar.setTimeInMillis(System.currentTimeMillis());'會給你當前的日期。使用[compareTo()](https://developer.android.com/reference/java/util/Calendar.html#compareTo(java.util.Calendar))將其與採摘日期進行比較。 –

+0

Hello Ishita,如果我使用if(myCalendar.after(myCalendar.getTime())){},它可以更新所選日期的文本視圖,但是當用戶選擇過去的日期時,令人困惑的部分是設置文本。 –

回答

0

看來這行崩潰:

txtTrigger.setText(Html.fromHtml(no), TextView.BufferType.SPANNABLE); 

一個更好的辦法是:

txtTrigger.setText("NO"); 
txtTrigger.setTextColor(Color.RED);