Android开发 之MainActivity类

一、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);
    }
时间: 2024-08-07 21:16:52

Android开发 之MainActivity类的相关文章

Android开发常用工具类

来源于http://www.open-open.com/lib/view/open1416535785398.html 主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java. 目前包括  HttpUtils.DownloadManagerPro.Safe.ijiami.ShellUtils.PackageUtils. PreferencesUtils.JSONUtils.FileUtils.ResourceUtils.StringUtils. ParcelUtils.Rand

20个Android开发常用工具类

主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java. 目前包括  HttpUtils.DownloadManagerPro.Safe.ijiami.ShellUtils.PackageUtils.PreferencesUtils.JSONUtils.FileUtils.ResourceUtils.StringUtils.ParcelUtils.RandomUtils.ArrayUtils.ImageUtils.ListUtils.MapUtils.ObjectUtils.S

最全Android开发常用工具类

主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java. 目前包括  HttpUtils.DownloadManagerPro.Safe.ijiami.ShellUtils.PackageUtils.PreferencesUtils.JSONUtils.FileUtils.ResourceUtils.StringUtils.ParcelUtils.RandomUtils.ArrayUtils.ImageUtils.ListUtils.MapUtils.ObjectUtils.S

Android开发之时间类的使用

Android日期操作中常用的三种方式: 1.Date 2.Calendar 3.Unix时间戳 1与2的在具体的日期计算上便利高,3计算上方便和灵活,效率高.利用SimpleDateFormat可以实现字符串与Date对象的相互转化. Date与Calendar的区别 Calendar是能够自动根据手机所设置的时区来调整时间戳的,也就是该时区真实的时间戳Calendar. Date和SimpleDateFormat获得的时间戳则不考虑时区,而是获取标准的GMT时间戳. TimeZone.get

【Android开发】Context类

Context 英文直译:上下文 Google官方文档概述: Interface to global information about an application environment. This is an abstract class whose implementation is provided by the Android system. It allows access to application-specific resources and classes, as well

android开发Tost工具类管理(一)

Tost工具类管理: 1 package com.gzcivil.utils; 2 3 import android.content.Context; 4 import android.widget.Toast; 5 6 /** 7 * 8 * @author LiJinlun date 2016-01-10 9 */ 10 public class MyToast { 11 private static Toast mToast = null; 12 13 /* 14 * 一个Activity

Android开发中Context类的作用以及Context的详细用法

Android中Context的作用以及Context的详细用法 本文我们一起来探讨一下关于Android中Context的作用以及Context的详细用法,这对我们学习Android的资源访问有很大的帮助,文章中也贴出了一些关于Android Context使用的示例代码,非常不错,以下是原文: Context基本概念 Context是什么? 1) Context是一个抽象类,其通用实现在ContextImpl类中. 2) Context:是一个访问application环境全局信息的接口,通

【Android开发】Bundle类

Bundle 英文直译:包,捆 Google官方文档概述: A mapping from String values to various Parcelable types. 一个从字符串到不同“可打包”类型的映射 Bundle类中存储了许多 key-value 对,可以用于在不同的Activity之间传递数据.

Android开发学习——简单类图

1.类A继承于类B    (B 是父类,A是 子类) 2.小汽车.自行车 实现车的接口 3.A中有B这个成员变量,单向关联 4.聚合,整体与部分的关系.has-a  B中的构造函数(或set方法)需要A作为传入参数. 公司与员工的关系 5.复合  组合,整体与部分的关系.contains-a  B中构造函数将A进行了实例化. 你和你的大脑  书和书页的关系. 组合>聚合>关联>依赖