您的位置:首页 > 移动开发 > Android开发

自定义的LinearLayout 使用报错 android.view.InflateException: Binary XML file line #3: Error inflating class

2016-03-17 17:48 633 查看
03-17 17:32:58.164 30209-30209/? E/AndroidRuntime: Process: tech.androidstudio.dispatchdemo, PID: 3020903-17 17:32:58.164 30209-30209/? E/AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{tech.androidstudio.dispatchdemo/tech.androidstudio.dispatchdemo.MainActivity}: android.view.InflateException:Binary XML file line #3: Error inflating class tech.androidstudio.dispatchdemo.RootLinearLayout03-17 17:32:58.164 30209-30209/? E/AndroidRuntime: Caused by: android.view.InflateException: Binary XML file line #3: Error inflating class tech.androidstudio.dispatchdemo.RootLinearLayout03-17 17:32:58.164 30209-30209/? E/AndroidRuntime: at tech.androidstudio.dispatchdemo.MainActivity.onCreate(MainActivity.java:11)03-17 17:32:58.164 30209-30209/? E/AndroidRuntime: at tech.androidstudio.dispatchdemo.MainActivity.onCreate(MainActivity.java:11)原因 :缺少构造方法:RootLinearLayout(Context context, AttributeSet attrs)
解决方法
添加构造方法:RootLinearLayout(Context context, AttributeSet attrs)
package tech.androidstudio.dispatchdemo;import android.content.Context;import android.util.AttributeSet;import android.util.Log;import android.view.MotionEvent;import android.widget.LinearLayout;/*** Created by Kodulf on 2016/3/17.*/public class RootLinearLayout extends LinearLayout {public RootLinearLayout(Context context) {super(context);}//TODO 一定不能缺少这个构造方法,不然会报错public RootLinearLayout(Context context, AttributeSet attrs) {super(context, attrs);}@Overridepublic boolean dispatchTouchEvent(MotionEvent ev) {int action = ev.getAction();switch (action){case MotionEvent.ACTION_DOWN:Log.d("Kodulf","RootLinearLayout ACTION_DOWN");break;}return super.dispatchTouchEvent(ev);}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: