我一直在开发一些Android应用程序,其中有以下代码:
final CalendarView calendarView=(CalendarView)layout.findViewById(R.id.calendarView);
calendarView.setClickable(true);
calendarView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.e("event", "click");
});
calendarView.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Log.e("event", "long click");
return false;
}
});
calendarView.setOnDateChangeListener(new OnDateChangeListener(){
@Override
public void onSelectedDayChange(CalendarView view, int year,
int month, int dayOfMonth) {
Log.e("event", "datachanged");
}
});我需要捕获"OnClick“事件,但我只捕获"OnDataChange”事件。我不明白为什么。请帮帮我。提前谢谢你。
发布于 2012-10-08 20:35:44
我猜有一些'CalendarView‘的子视图,你可以在这些子视图上注册一个'OnClickListener’,而不是'CalendarView‘。
看看here,看看它是否扩展了'FrameLayout‘。
发布于 2012-10-08 20:42:44
由于日历是对话框而不是视图,因此使用DialogInterface.OnClickListener而不是View.OnclickListener
发布于 2015-08-07 00:37:21
OnGlobalLayoutListener将会做到这一点。
calendarView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener(){
@Override
public void onGlobalLayout()
{
//your code here
}
});https://stackoverflow.com/questions/12781747
复制相似问题