Android日历视图addOnGlobalLayoutListener
我需要在CalendarView的项上设置OnClickListener。我不明白为什么我的方法会循环Android日历视图addOnGlobalLayoutListener,android,Android,我需要在CalendarView的项上设置OnClickListener。我不明白为什么我的方法会循环 public class CalendarActivity extends Activity { CalendarView calendar; TextView dangerCalendar; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); set
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循环