- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 2 个 Edittext,触摸时会弹出一个时间选择器对话框:
public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initTimePicker();
}
private void initTimePicker()
{
Calendar mcurrentTime = Calendar.getInstance();
final int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY);
final int minute = mcurrentTime.get(Calendar.MINUTE);
final EditText deplacementD = (EditText) findViewById(R.id.editText1);
final EditText deplacementF = (EditText) findViewById(R.id.editText2);
deplacementD.setInputType(InputType.TYPE_NULL);
deplacementF.setInputType(InputType.TYPE_NULL);
// Attachement du timepicker
deplacementD.setOnTouchListener(getTimePicker(hour, minute, "Start"));
deplacementF.setOnTouchListener(getTimePicker(hour, minute, "End"));
}
private OnTouchListener getTimePicker(final int heure, final int minute, final String titre)
{
return new OnTouchListener() {
private boolean validated = false;
@Override
public boolean onTouch(View v, MotionEvent event) {
final EditText editTouched = (EditText) v;
Log.d("Timepicker", "On Touch event");
if (event.getAction() == MotionEvent.ACTION_UP) {
Log.d("Timepicker", "Motion event UP");
TimePickerDialog mTimePicker;
Log.d("Timepicker", "New timepickerdialog instance");
mTimePicker = new TimePickerDialog(editTouched.getContext(),
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute)
{
Log.d("Timepicker", "OnTimeSet called");
if (validated)
editTouched.setText(String
.format("%02d:%02d", hourOfDay, minute));
}
}, 00, 00, true);// Yes 24 hour time
Log.d("Timepicker", "Timepicker title set");
mTimePicker.setTitle(titre);
mTimePicker.setButton(DialogInterface.BUTTON_NEGATIVE, "CANCEL",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which)
{
Log.d("Timepicker", "Cancel Clicked");
validated = false;
}
});
mTimePicker.setButton(DialogInterface.BUTTON_POSITIVE,
getString(android.R.string.ok),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which)
{
Log.d("Timepicker", "Ok called");
validated = true;
}
});
Log.d("Timepicker", "Timepicker show()");
mTimePicker.show();
Log.d("Timepicker", "out of getTimePicker return true");
return true;
}
Log.d("Timepicker", "out of getTimePicker return false");
return false;
}
};
}
}
在现有的 Android 设备(nexus s、4、5)上,一切都运行良好。当我单击肯定按钮时,出现时间选择器对话框并设置编辑文本。
相反,对于 Samsung 设备(S4 4.4.2 和 Note II 4.3),对话框会出现,但永远不会调用 onTimeSet
。不过 logcat 中没有错误。
这是放入 getTimepicker() 的日志消息的结果:
在 nexus 设备上:
05-26 09:45:51.850: D/Timepicker(3219): Attaching timepicker
05-26 09:45:51.850: D/Timepicker(3219): Inside getTimePicker()
05-26 09:45:58.007: D/Timepicker(3219): On Touch event
05-26 09:45:58.007: D/Timepicker(3219): out of getTimePicker return false
05-26 09:45:58.027: D/Timepicker(3219): On Touch event
05-26 09:45:58.027: D/Timepicker(3219): out of getTimePicker return false
05-26 09:45:58.077: D/Timepicker(3219): On Touch event
05-26 09:45:58.077: D/Timepicker(3219): Motion event UP
05-26 09:45:58.077: D/Timepicker(3219): New timepickerdialog instance
05-26 09:45:58.167: D/Timepicker(3219): Timepicker title set
05-26 09:45:58.177: D/Timepicker(3219): Timepicker show()
05-26 09:45:58.187: D/Timepicker(3219): out of getTimePicker return true
05-26 09:46:05.745: D/Timepicker(3219): Ok called
05-26 09:46:05.745: D/Timepicker(3219): OnTimeSet called
OnTimeSet()
在我单击 OK 按钮后立即被调用。
与三星设备相反:
05-26 09:47:59.500: D/Timepicker(12897): Attaching timepicker
05-26 09:47:59.500: D/Timepicker(12897): Inside getTimePicker()
05-26 09:48:01.105: D/Timepicker(12897): On Touch event
05-26 09:48:01.105: D/Timepicker(12897): out of getTimePicker return false
05-26 09:48:01.125: D/Timepicker(12897): On Touch event
05-26 09:48:01.125: D/Timepicker(12897): out of getTimePicker return false
05-26 09:48:01.160: D/Timepicker(12897): On Touch event
05-26 09:48:01.160: D/Timepicker(12897): out of getTimePicker return false
05-26 09:48:01.190: D/Timepicker(12897): On Touch event
05-26 09:48:01.190: D/Timepicker(12897): Motion event UP
05-26 09:48:01.190: D/Timepicker(12897): New timepickerdialog instance
05-26 09:48:01.230: D/Timepicker(12897): Timepicker title set
05-26 09:48:01.230: D/Timepicker(12897): Timepicker show()
05-26 09:48:01.245: D/Timepicker(12897): out of getTimePicker return true
05-26 09:48:04.700: D/Timepicker(12897): Ok called
On timeset 永远不会被调用
我应该怎么做才能使我的代码与三星设备兼容?
最佳答案
我遇到了类似的问题:
onTimeSet 是从我的 nexus VDM 调用的,而不是从 Samsung GS3 调用的。两者都有android 4.3。 This answer helped me to work through the problem.
关于android - 时间选择器对话框 : onTimeSet never called on samsung devices with touchwiz,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23826373/
我已经在 fragment 中实现了按钮按下时的时间选择器(工作)但是我如何提取两个对话框的小时和分钟以仅使用一个 onTimeSet() 来分隔变量, 它位于 MainActivity? 这是我的
我正在使用时间选择器让用户输入他想要的时间来完成特定任务,我正在使用支持库中提供的 DialogFragment 类以实现与旧 Android 版本的向后兼容性。 这是我创建 TimePickerFr
这是我的代码,在我的 ListViewAdapter 中。我想显示一个 timePicker 来设置我的适配器的时间。但是a无法解决我的onTimeSetp 是我的适配器 assert btn
我的应用程序中有一个日期和时间选择器,我刚刚注意到时间不对。时间选择器显示的当前时间是 i 小时延迟,它的上午/下午是错误的,例如当前时间是 2:55 pm它会显示1:55 am这里的问题似乎是代码
今天我尝试使用 TimePickerDialog,但我发现了一些缺陷。 OnTimeSet 也会在对话框关闭时调用(例如,通过单击外部) OnTimeSet 在用户点击“完成”按钮时被调用两次 我使用
我有一个处理 fragment 的 MainActivity。在我做的其中一个 fragment 上: enterBtn.setOnClickListener(new View.OnClickList
如果我在 Jelly Bean 中使用 TimePickerDialog,对话框没有取消按钮,而且无论我做什么(比如尝试后退按钮),onTimeSet 总是会触发,所以我无法知道是否用户是否不想采取行
我有 2 个 Edittext,触摸时会弹出一个时间选择器对话框: public class MainActivity extends Activity { @Override pro
我使用 TimePickerDialog 和 onTimeSet() 方法。我添加了一个带有 onClickListener 的 cancel 按钮。 我的问题是,当我单击 cancel 按钮时,会调
我是一名优秀的程序员,十分优秀!