Android,为什么没有TimePicker回调运行?

时间:2012-12-12 06:34:33

标签: android timepicker

在我的活动中,我有一个时间选择器。我实现了回调,如下所示,但没有日志显示它们都没有被调用。无论将tpTimer.setFocusable()设置为True还是False,都没有调用。

任何建议都将不胜感激。

TimePicker tpTimer = (TimePicker) findViewById(R.id.timePicker);
        tpTimer.setIs24HourView(true);
        tpTimer.setCurrentHour(0);
        tpTimer.setCurrentMinute(0);
        tpTimer.setFocusable(false); // or True
        tpTimer.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.i(TAG, "%1");
            }
        });
        tpTimer.setOnFocusChangeListener(new OnFocusChangeListener() {          
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                Log.i(TAG, "%2");           
            }
        });
        tpTimer.setOnLongClickListener(new OnLongClickListener() {          
            @Override
            public boolean onLongClick(View v) {
                Log.i(TAG, "%3");
                return false;
            }
        });
        tpTimer.setOnTouchListener(new OnTouchListener() {          
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                Log.i(TAG, "%4");
                return false;
            }
        });

2 个答案:

答案 0 :(得分:1)

如果您提及视图,则会调用这些方法,因此请将所有事件侦听器代码更改为

tpTimer.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.i("Message", "Its Clicked");
            }
        });

我希望这会有所帮助。

答案 1 :(得分:0)

我遇到了同样的问题。我的解决方法是使用 setOnTimeChangedListener

    tpTimer.setOnTimeChangedListener(new OnTimeChangedListener() {
        @Override
            public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
                //Do whatever you want here
            }
        });

希望它对你有所帮助,我希望我们各国(伊朗和以色列)之间能够和平。