今天在做项目开发时遇到这么一个错误,完整的错误提示信息如下:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tony.timepicker/com.tony.timepicker.MainActivity}: android.view.InflateException: Binary XML file line #11: Error inflating class com.tony.timepicker.TimePicker

com.tony.timepicker.TimePicker类为一个自定义View类,内容如下:

package com.tony.timepicker;

import java.util.Calendar;

import android.content.Context;
import android.text.format.DateFormat;
import android.util.AttributeSet;
import android.widget.FrameLayout;
import android.widget.NumberPicker;
import android.widget.NumberPicker.OnValueChangeListener; public class TimePicker extends FrameLayout {
private NumberPicker mHourSpinner;
private NumberPicker mMinuteSpinner;
private Calendar mDate;
private int mHour, mMinute;
private String[] mDateDisplayValues = new String[7];
private OnTimeChangedListener mOnTimeChangedListener; public TimePicker(Context context) {
super(context);
init(context);
} public void init(Context context) {
mDate = Calendar.getInstance();
// android.widget.TimePicker
mHour = mDate.get(Calendar.HOUR_OF_DAY);
mMinute = mDate.get(Calendar.MINUTE); inflate(context, R.layout.time_picker, this); updateTimeControl(); mHourSpinner = (NumberPicker) this.findViewById(R.id.np_hour);
mHourSpinner.setMaxValue(23);
mHourSpinner.setMinValue(0);
mHourSpinner.setValue(mHour);
mHourSpinner.setOnValueChangedListener(mOnHourChangedListener); mMinuteSpinner = (NumberPicker) this.findViewById(R.id.np_minute);
mMinuteSpinner.setMaxValue(59);
mMinuteSpinner.setMinValue(0);
mMinuteSpinner.setValue(mMinute);
mMinuteSpinner.setOnValueChangedListener(mOnMinuteChangedListener);
} private NumberPicker.OnValueChangeListener mOnDateChangedListener = new OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
mDate.add(Calendar.DAY_OF_MONTH, newVal - oldVal);
updateTimeControl();
onTimeChanged();
}
}; private NumberPicker.OnValueChangeListener mOnHourChangedListener = new OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
mHour = mHourSpinner.getValue();
onTimeChanged();
}
}; private NumberPicker.OnValueChangeListener mOnMinuteChangedListener = new OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
mMinute = mMinuteSpinner.getValue();
onTimeChanged();
}
}; private void updateTimeControl() {
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(mDate.getTimeInMillis());
cal.add(Calendar.DAY_OF_YEAR, -7 / 2 - 1);
for (int i = 0; i < 7; ++i) {
cal.add(Calendar.DAY_OF_YEAR, 1);
mDateDisplayValues[i] = (String) DateFormat.format("MM.dd EEEE",
cal);
}
} public interface OnTimeChangedListener {
void onTimeChanged(TimePicker view, int year, int month, int day,
int hour, int minute);
} public void setOnTimeChangedListener(OnTimeChangedListener callback) {
mOnTimeChangedListener = callback;
} private void onTimeChanged() {
if (mOnTimeChangedListener != null) {
mOnTimeChangedListener.onTimeChanged(this,
mDate.get(Calendar.YEAR), mDate.get(Calendar.MONTH),
mDate.get(Calendar.DAY_OF_MONTH), mHour, mMinute);
}
}
}

经过在网上查找相关问题,找到问题的原因:

  因为com.tony.timepicker.TimePicker类没有定义另外两个构造函数TimePicker(Context context, AttributeSet attrs)和TimePicker(Context context, AttributeSet attrs, int defStyle)导致的错误。

解决办法:

  定义构造函数TimePicker(Context context, AttributeSet attrs)和TimePicker(Context context, AttributeSet attrs, int defStyle)。

  

最新文章

  1. ubuntu安装redis
  2. MongoDB 相关下载
  3. [转]在 Mac OS X 终端里使用 Solarized 配色方案
  4. python3.5之string
  5. 隐藏nginx 版本号信息(转)
  6. Linux下搭建Hadoop具体步骤
  7. 丢掉Mask遮罩,更好的圆形Image组件[Unity]
  8. 【JavaScript中的this详解】
  9. config-toolkit之config-face
  10. Python-反射getattr的应用
  11. 【转】TCP三次握手和四次挥手全过程及为什么要三次握手解答
  12. android 去掉主题
  13. [quartz] - Cron表达式举例
  14. Django商城项目笔记No.18商品部分-数据表创建
  15. HGOI 20181101题解
  16. CCPC 2017-2018, Finals Solution
  17. Web前端性能优化的三个偏方
  18. 开源IDS系列--snorby 2.6.2 undefined method `run_daily_report&#39; for Event:Class (NoMethodError)
  19. UVALive-4670 Dominating Patterns / 洛谷 3796 【模板】AC自动机
  20. Alpha冲刺(6/10)——追光的人

热门文章

  1. C++值类别, move, perfect forward
  2. SecureCRT连接本地虚拟机Linux系统很慢
  3. DatabaseLibrary -数据库操作
  4. 解决java导入project出现红叉
  5. python基础(31):进程(一)
  6. hibernate关联关系(多对多)
  7. 用PHP写出计算器
  8. crm-3权限
  9. Taro聊天室|react+taro仿微信聊天App界面|taro聊天实例
  10. 对data标签获取到的时间进行比较