我发现TimePicker小部件存在一些问题。用户更改小部件后的时间setHour和setMinute方法不起作用。
public class MainActivity extends AppCompatActivity {
private Button mButton;
private TimePicker mTimePicker;
private static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mButton = (Button) findViewById(R.id.reset);
mTimePicker = (TimePicker) findViewById(R.id.timePicker);
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Calendar cal = Calendar.getInstance();
int hour = cal.get(Calendar.HOUR_OF_DAY);
int minute = cal.get(Calendar.MINUTE);
mTimePicker.setHour(hour);
mTimePicker.setMinute(minute);
Log.v(TAG, "onClick: " + hour + "=>" + mTimePicker.getHour());
Log.v(TAG, "onClick: " + minute + "=>" + mTimePicker.getMinute());
}
});
}
}
重现步骤:
结果:时间未重置为13:21
日志:
03-30 13:18:05.765 30923-30923 / ru.neverdark.timepickerproblem V / MainActivity:onClick:13 => 21 03-30 13:18:05.765 30923-30923 / ru.neverdark.timepickerproblem V / MainActivity:onClick: 18 => 18
此问题的解决方法是什么?
我在问题跟踪器中发现的相同错误:https://code.google.com/p/android/issues/detail?id=208180但在SDK25中未修复...
github上的演示项目:https://github.com/yankovskiy/TimePickerProblem
答案 0 :(得分:0)
protected Dialog onCreateDialog(int id) {
checkMark = (Button) findViewById(R.id.button13) ;
checkMark.setVisibility(View.VISIBLE) ;
switch (id) {
case TIME_DIALOG_ID:
// set time picker as current time
return new TimePickerDialog(this,
timePickerListener, hour, minute,false);
case TIME_DIALOG_ID_ON:
// set time picker as current time
return new TimePickerDialog(this,
timePickerListenerOn, hour, minute,false);
}
return null;
}
这个怎么样?
picker.setCurrentHour(date.getHours())
picker.setCurrentMinute(date.getMinutes())
答案 1 :(得分:0)
嗯,我必须承认,这不是我最自豪的代码。
但作为解决方法,您可以拥有:
def deal_page(product_url)
...
html = Nokogiri::HTML(open(product_url))
...
end
在API 21,22和23上测试。
错误在API 24,25中无法重现。