Android CalendarView addOnGlobalLayoutListener

时间:2015-11-14 20:33:29

标签: android

我需要在CalendarView的项目上设置OnClickListener。我无法理解为什么我的方法循环。

public class CalendarActivity extends Activity {
CalendarView calendar; 
TextView dangerCalendar;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.calendar);
calendar.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {     
        @Override
        public void onGlobalLayout() {
            SimpleDateFormat  formatter = new SimpleDateFormat("yyyy-MM-dd");
            String date = formatter.format(new Date(calendar.getDate()));
            setCount(getCount((getResources().getString(R.string.important)),date),dangerCalendar); 
        }
    });
}

方法getCount从数据库中获取计数行。

public String getCount(String category, String date)
{
    return String.valueOf(new DBHandler(this).getCountTasks(category, date));
}

方法setCount将值从getCount设置为TextView。

public void setCount(String count, TextView t) 
{
    switch(t.getId()){
    case R.id.dangerCalendar: 
        t.setText(count+" important tasks");
        break;
    case R.id.warningCalendar:
        t.setText(count+" usual tasks");
        break;
    case R.id.usualCalendar:
        t.setText(count+" pushover tasks");     
        break;
    }

}

但是onGlobalLayout循环。

0 个答案:

没有答案