錯誤解決:android.view.InflateException: Binary XML file line #11: Error inflating class com.tony.timepicker.TimePicker

來源:互聯網
上載者:User

標籤:android   style   blog   java   color   io   

今天在做項目開發時遇到這麼一個錯誤,完整的錯誤提示資訊如下:

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)。

 

 

  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.