0

在我的活动中,我有一个时间选择器。我实现了回调,如下所示,但没有日志显示它们都没有被调用。无论设置tpTimer.setFocusable()Trueor 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;
            }
        });
4

2 回答 2

1

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

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

我希望这有帮助。

于 2012-12-12T07:31:40.147 回答
0

我有同样的问题。我的解决方法是使用setOnTimeChangedListener

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

希望它也对您有所帮助,我希望我们的国家(伊朗和以色列)之间能够实现和平。

于 2013-01-06T15:36:33.823 回答