首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为CalendarView设置OnClickListener?

如何为CalendarView设置OnClickListener?
EN

Stack Overflow用户
提问于 2012-10-08 20:27:19
回答 3查看 7K关注 0票数 3

我一直在开发一些Android应用程序,其中有以下代码:

代码语言:javascript
复制
    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”事件。我不明白为什么。请帮帮我。提前谢谢你。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-08 20:35:44

我猜有一些'CalendarView‘的子视图,你可以在这些子视图上注册一个'OnClickListener’,而不是'CalendarView‘。

看看here,看看它是否扩展了'FrameLayout‘。

票数 0
EN

Stack Overflow用户

发布于 2012-10-08 20:42:44

由于日历是对话框而不是视图,因此使用DialogInterface.OnClickListener而不是View.OnclickListener

票数 0
EN

Stack Overflow用户

发布于 2015-08-07 00:37:21

OnGlobalLayoutListener将会做到这一点。

代码语言:javascript
复制
calendarView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener(){
            @Override
            public void onGlobalLayout()
            {
                  //your code here
            }
        });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12781747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档