重写Activity等Android组件构造函数的那些坑
来源:互联网 发布:线切割编程教程 编辑:程序博客网 时间:2024/06/07 22:18
最近看了一篇文章#Effective Android# 不要重载组件的构造函数(No.1)(应该叫重写),引发思考,一直没发现这个问题,在此记下,希望和各位共同学习。废话不多说,上代码:
在继承于Activity的类MyActivity中给出带参数的构造方法
public MyActivity(Context context){
...
}
实例化:
MyActivity activity = new MyActivity(context);
运行通过!!!
但是
如果在其他界面通过如下方式跳转MyActivity时:
Intent intent = new Intent(MainActivity.this,MyActivity.class);
startActivity(intent);
会抛出如下异常:
Caused by: java.lang.InstantiationException: class com.XXX.MyActivity has no zero argument constructor
猜想:
通过Intent方式去打开一个Activity,android可能需要一个默认的无参构造方法去实例化跳转的Activity对象,此时我们已经给出了MyActivity带参的构造方法,相当于此时MyActivity无参的构造方法已经无效,所以会报没有无参构造器的异常!!!
解决:
在MyActivity中添加一个无参的构造方法!顺利通过运行
0 0
- 重写Activity等Android组件构造函数的那些坑
- android中那些不得不重写的函数
- Activity中那些需要重写的方法
- Activity中那些需要重写的方法
- Activity中那些需要重写的方法
- 构造函数的那些事
- 构造函数的那些事
- android重写组件的样式。
- Android的Activity组件
- Android 的 Activity 组件
- Android 的 Activity 组件
- Android 的 Activity 组件
- 黑马程序员-构造函数以及构造函数的重写
- Swing组件的构造函数
- 子类重写父类的构造函数
- Android 重写view的那些事
- Android Activity的构造方法
- 谈谈构造函数的那些事
- 可用jar运行的war包
- 剑指offer(47):n个骰子的点数
- 让MySql支持Emoji表情 utf8mb4编码格式
- 二进制的转换
- C++中关键字const和mutable的用法总结
- 重写Activity等Android组件构造函数的那些坑
- iOS多线程(NSThread、NSOperation、GCD)
- WinSock Recvfrom() now returns WSAECONNRESET instead of blocking or timing out
- 求给定一个正整数的十六进制表示 vb
- 用photoshop扣公章
- 分治思想 - 二分搜索技术 - MATLAB代码 list是数据集合,x是要查找的数据。
- iOS单元测试,String类型的宏,单个类测试可以正常取到,多个类一起测试取到的宏为null
- java中ftpClient.listFiles()结果为空问题解决方案
- CSS样式的定位