在我的活动中,我有一个时间选择器。我实现了回调,如下所示,但没有日志显示它们都没有被调用。无论将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;
}
});
答案 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
}
});
希望它对你有所帮助,我希望我们各国(伊朗和以色列)之间能够和平。