一、MainActivity:

1、每个种语言都有一个程序入库(如:C#main函数),而Android程序的入口就是Mani Actiivty函数。

2、Activity是Android的核心类(android.app.Activity),在Activity类有onCreate事件方法,一般用于对Activity进行初始化,并且通过setContentView方法将View放到Activity上,绑定后,Activity会显示View上的控件。

MainAcitvity.java文件下的MainActivity类:
                                               a、 onCreate()是创建窗体的入口函数,
                                               b、 onCreateOptionsMenu()是创建当前Activity的菜单函数,
                                               c、 onOptionsItemSelected()是响应菜单按钮点击事件函数。
                                               d、 PlaceolderFragment内部类是实现自定义fragment

二、①onCreate函数用来初始化Activity实例对象,在前面Activity博客中我们知道onCreate的方法是在Activity创建时被系统调用,
是一个Activity生命周期的开始。

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); }

1、Bundle参数类型:以key-value的形式存储数据的。
      2、实际上,saveInsanceState也就是保存Activity的状态的,saveInsanceState中的状态数据是从onsaveInsanceState来的。

public void onSaveInsanceState(Bundle saveInsanceState){
super.onSaveInsanceState(saveInsanceState);
}

3、当一个Activity结束前,如果需要保存状态,就在onsaveInsanceState中,将状态数据以key-value的形式放入到saveInsanceState中。这样,当一个Activity被创建时,
就能从onCreate的参数saveInsanceState中获得状态数据, onsaveInsanceState方法
是用来保存Activity的状态的。
     4、当一个Activity在生命周期结束前,这个方法有一个参数名称与onCreate方法参数名称相同。(,比如:一个游戏在退出前,保存一下当前游戏运行的状态,当下次开启时能接着上次的继续玩下去。),就在onsaveInsanceState中,将状态数据以key-value的形式放入到saveInsanceState中。这样,当一个Activity被创建时,就能从onCreate的参数saveInsanceState中获得状态数据。

5、重写onSavedInstanceState(),此方法会在activity结束时,调用.
重写在MainActivity类中右键Source-->override.

②onCreateOptionsMenu()菜单函数

@Override
public boolean onCreateOptionsMenu(Menu menu) {
/**
* 此方法用于初始化菜单,其中menu参数就是即将要显示的Menu实例。 返回true则显示该menu,false 则不显示;
* (只会在第一次初始化菜单时调用) Inflate the menu; this adds items to the action bar
* if it is present.
*/
getMenuInflater().inflate(R.menu.main, menu);
return true;
} @Override
public boolean onPrepareOptionsMenu(Menu menu) {
/**
* 在onCreateOptionsMenu执行后,菜单被显示前调用;如果菜单已经被创建,则在菜单显示前被调用。 同样的,
* 返回true则显示该menu,false 则不显示; (可以通过此方法动态的改变菜单的状态,比如加载不同的菜单等) TODO
* Auto-generated method stub
*/
return super.onPrepareOptionsMenu(menu);
} @Override
public void onOptionsMenuClosed(Menu menu) {
/**
* 每次菜单被关闭时调用. (菜单被关闭有三种情形,menu按钮被再次点击、back按钮被点击或者用户选择了某一个菜单项) TODO
* Auto-generated method stub
*/
super.onOptionsMenuClosed(menu);
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
/**
* 菜单项被点击时调用,也就是菜单项的监听方法。
* 通过这几个方法,可以得知,对于Activity,同一时间只能显示和监听一个Menu 对象。 TODO Auto-generated
* method stub
*/
return super.onOptionsItemSelected(item);
}

③onOptionsItemSelected()判断是否存在改菜单,存在返回true,最后调用PlaceolderFragment内部类fragment生命周期的相关的状态方法。

  public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}

Android之MainActivity类的更多相关文章

  1. Android中View类OnClickListener和DialogInterface类OnClickListener冲突解决办法

    Android中View类OnClickListener和DialogInterface类OnClickListener冲突解决办法 如下面所示,同时导入这两个,会提示其中一个与另一个产生冲突. 1i ...

  2. Android中用Application类实现全局变量

    最近在项目中,遇到了application这个类,开始不知道有什么用,经过学习后才知道它的用途也蛮大的,举个例子,如果想在整个应用中使用全局变量,在java中一般是使用静态变量,public类型:而在 ...

  3. Android 开发工具类 35_PatchUtils

    增量更新工具类[https://github.com/cundong/SmartAppUpdates] import java.io.File; import android.app.Activity ...

  4. Android日志打印类LogUtils,能够定位到类名,方法名以及出现错误的行数并保存日志文件

    Android日志打印类LogUtils,能够定位到类名,方法名以及出现错误的行数并保存日志文件 在开发中,我们常常用打印log的方式来调试我们的应用.在Java中我们常常使用方法System.out ...

  5. Android——application全局类的使用

    目录 1.概述 2.Application基类 3.自定义Application类 4.Application的生命周期 5.Application对象的回调函数 6.Application对象的作用 ...

  6. 53. Android常用工具类

    主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java.目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils.Prefer ...

  7. Android 常见工具类封装

    1,MD5工具类: public class MD5Util { public final static String MD5(String s) { char hexDigits[] = { '0' ...

  8. android.hardware.Camera类及其标准接口介绍

    android.hardware.Camera类及其标准接口介绍,API level 19 http://developer.android.com/reference/android/hardwar ...

  9. android中Handle类的用法

    android中Handle类的用法 当我们在处理下载或是其他需要长时间执行的任务时,如果直接把处理函数放Activity的OnCreate或是OnStart中,会导致执行过程中整个Activity无 ...

随机推荐

  1. Sonya and Problem Wihtout a Legend CodeForces - 714E (dp)

    大意: 给定序列, 每次操作可以任选一个数+1/-1, 求最少操作数使序列严格递增. 序列全-i后转化为求最少操作数使序列非降, 那么贪心可以知道最后$a_i$一定是修改为某一个$a_j$了, 暴力d ...

  2. python网络爬虫&&爬取网易云音乐

    #爬取网易云音乐 url="https://music.163.com/discover/toplist" #歌单连接地址 url2 = 'http://music.163.com ...

  3. 添加浏览器back操作时的响应事件

    https://blog.csdn.net/xcqingfeng/article/details/70800118 $(function(){ pushHistory(); window.addEve ...

  4. WebApi 全局使用filter

    先上代码: public static class WebApiConfig { public static void Register(HttpConfiguration config) { // ...

  5. MapServer Tutorial——MapServer7.2.1教程学习——教程背景

    MapServer Tutorial——MapServer7.2.1教程学习——教程背景 一.前言 目前处于MapServer学习入门阶段,所以每一步都需要打下扎实基础.尽自己最大的努力,去学习知识的 ...

  6. python之路---模块

    在python中,为了简少代码重复量,我们将引用了函数,面向对象 等方法.为了能够让这些函数,面向对象可以再其他python文件中引用,我们将功能函数写在一个py文件中,该py文件即是一个模块,可以共 ...

  7. vuex实现原理

    一.Store的层次结构 Store,负责管理整个数据访问.修改等: 提高API: State,数据结构: 所有的getters.mutations,全部都注册到store里:结构大概是: { 'xx ...

  8. list 的相关操作

    # ### 列表的相关操作 # (1) 列表的拼接 lst1 = [1,2,3] lst2 = [4,5,6] lst = lst1 + lst2 print(lst) # (2) 列表的重复 lst ...

  9. 【oracle入门】数据模型

    数据模式也是一这种模型,它是数据库中用于提供信息表示的操作手段的形式架构,是数据库中用来对现实世界惊喜抽象的工具.数据模型按不同的应用层次分为3种类型,分别为概念数据模型.逻辑数据模型.物理数据模型. ...

  10. 编写 python 小程序,将LOL官网的皮肤保存下来,上传百度云,记录那些强撸灰飞烟灭的日子

    to 撸的血泪史:大学四年几乎都在宿舍打撸,So,把官网的皮肤都保存下来,存到百度云,就当一种纪念 编辑器:pycharm 用到的包:urllib.request, requests, json, r ...