Android常见的错误(1)——获得控件导致程序崩溃
2016-04-26 22:15
441 查看
**
![](http://img.blog.csdn.net/20160426220829841)
很多人会觉得这个很正常,这个情况很常见啊,因为Java写class的时候不是可以直接给成员变量赋值的吗?
但是我们需要记住的一点是,所有获得控件的语句都是要在布局里面进行的,意思就是说,所有的findViewById的语句都要在相应的setcontentview语句下面,你可以在前面只是做一个变量声明。
2.在SetContentView之前做布局的相关变化,这样也是会导致程序崩溃的,比如说,获取系统时间并且把今天所在的某一个日期长度变宽,是界面可视化更好。
我一开始会觉得要先把Linerlayout的宽度先改变然后才能显示整个布局,不然这个布局不就要刷新两遍吗?
后来发现==一直都是错的。
任何要在布局发生的事情,获得控件、改变控件属性等,都要在setcontentView下面。
**1.在Activity类中控件作为私有变量
1.很多人会觉得这个很正常,这个情况很常见啊,因为Java写class的时候不是可以直接给成员变量赋值的吗?
但是我们需要记住的一点是,所有获得控件的语句都是要在布局里面进行的,意思就是说,所有的findViewById的语句都要在相应的setcontentview语句下面,你可以在前面只是做一个变量声明。
public class MainActivity extends ActionBarActivity { Button but1=null; Button but2=null; Button but3=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); but1 = (Button)findViewById(R.id.button1); but2 = (Button)findViewById(R.id.button2); } //其他省略...... }
2.在SetContentView之前做布局的相关变化,这样也是会导致程序崩溃的,比如说,获取系统时间并且把今天所在的某一个日期长度变宽,是界面可视化更好。
我一开始会觉得要先把Linerlayout的宽度先改变然后才能显示整个布局,不然这个布局不就要刷新两遍吗?
后来发现==一直都是错的。
相关文章推荐
- android多媒体开发 音频格式比较
- Android 之实现类似QQ图片说说照片选择
- Android学习笔记-MeasureSpec的理解
- View的事件分发机制二--事件分发规则
- Android5.0之NavigationView的使用
- Hello Android Hello Java
- Android 开源框架Universal-Image-Loader完全解析(三)---源代码解读
- Android源码浅析(一)——VMware Workstation Pro和Ubuntu Kylin 16.04 LTS安装配置
- Android源码浅析(一)——VMware Workstation Pro和Ubuntu Kylin 16.04 LTS安装配置
- Android 开源框架Universal-Image-Loader完全解析(二)--- 图片缓存策略详解
- Android学习记录(七) 记录一下最近遇到的坑:文件断点续传的问题。
- Android RecyclerView使用(二) -给Item添加点击事件
- Android 开源框架Universal-Image-Loader完全解析(一)--- 基本介绍及使用
- Android学习记录(六) 记录一下最近遇到的坑:url转义遇到的问题
- 为Android系统定制重启功能
- xUtils3.0 - Android快速开发框架
- Android学习记录(五) 记录一下最近遇到的坑:android actionbar menu菜单无显示。
- android 动态加载
- android自定义view之地图(一)
- android智能聊天机器人