andrid 自学日记(二) —Activity
自学android开发有一个半月了,《第一行代码》和《疯狂android讲义》也看完了,大部分代码都有自己敲过,也了解了android开发的整体结构。完整的app目前就写过一个天气的MyWeather,能实现天气查询,后台定时更新,下拉刷新等基本功能。
随着学习深入,发现要学的东西非常多,根本不可能在短时间达到熟练并成为一个合格android程序员,于是想找一个实习的工作,能在这样的氛围下效率地学习。
在此请问有没有好心的前辈给个实习的机会或者贵公司需要免费的实习生? 我住在上海松江,公司在上海的都可以,先谢谢了!。安排给我工作都会努力完成,就算当时不会,也会自己寻找解决的途径。
回归正题,自学日记其实是记录和整理我所学的知识的。包含一些个人的理解,可能并不都是正确的。如果有不恰当的地方,希望不吝指正。
这一篇先从Activity开始吧。
Activity是android应用中与用户直接交互的组件,也就是看得见界面。Activity本质是一个类,这个类中有很多方法,可以实现与用户的交互,例如点击,滑动等操作。而用户看得到视图和界面是通过加载XML布局文件来实现的。
创建一个Acitivity首先需要创建一个类继承自Activity或者其子类,如:AccountAuthenticatorActivity(实现账户管理界面的Acitivity)、ListActivity(实现列表的Activity)、PreferenceActivity(实现程序参数设置,存储界面的Activity)等。
public class MyActivity extends Activity {
然后重写onCreate方法,这个回调方法是在活动创建的时候调用的,因此可以将启动Activity的准备工作都写在这个方法中,例如setContentView()方法加载布局。
public class MyActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeathure(Window.FEATURE_NO_TITLE);//隐藏标题栏
setContentView(R.layout.my_activity);//加载布局
}
其中savedInstanceState是Bundle类的实例, Bundle类提供一系列的方法用于保存数据,类似与Map通过键值对的形式保存。这里onCreate()方法中传入的savedInstanceState参数是Activity启动时可能需要传入的数据,可以在该Activity通过重写onSaveInstanceState()方法来保存需要存储的数据,(此方