我需要在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循环。