Android程序启动的常见代码

常见方法

  • super.onCreate():活动第一次被创建的时候调用,完成活动的初始化操作,比如加载布局、绑定事件等
  • savedInstanceState:本质是一个bundle,以key-value的形式保存当前Activity的状态信息。这个参数作用是在游戏退出前,或者是电子书退出前,可以保存当前游戏或电子书的运行状态或页码,保证在下次启动Activity的时候可以继续。
1 | savedInstanceState.putInt("key1", 0);
2 | savedInstanceState.putString("key2", "savedInstanceState test");
  • setContentView我们在Activity中经常见到,它的作用就是把我们的布局文件(xml文件)放在Activity中显示
  • findViewByid()方法可以获取到布局文件中定义的元素,参数是组件的id,返回的是一个View对象,通常需要向下转型
  • setOnClickListener()方法是Android开发中常用的点击事件监听器,多用于页面按钮调用,可为按钮注册一个监听器,点击按钮时就会执行监听器中的onClick()方法
  • inflate()方法:主要作用就是将xml转换成一个View对象,用于动态的创建布局,主要有以下四种形式:
public View inflate(int resource, ViewGroup root)
public View inflate(int resource, ViewGroup root, boolean attachToRoot)
public View inflate(XmlPullParser parser, ViewGroup root)
public View inflate(XmlPullParser parser, ViewGroup root, boolean attachToRoot)
三个参数,分别是:
1. resource 布局的资源id
2. root 填充的根视图
3. attachToRoot 是否将载入的视图绑定到根视图(LinerLayout)中

在这里插入图片描述

  • LayoutInflater总结:
  1. LayoutInflater是android用来解析xml布局文件的一个类
  2. LayoutInflater内部使用Pull解析的方式,并对其进行了一定的扩展。
  3. LayoutInflater在生成View节点的时候,是通过反射的方式创建View对象,反射调用的构造方法是带两个参数的那个,所以在定义View的时候必须重写带两个参数的构造方法。
  4. LayoutInflater在创建View对象的时候,会将xml节点的解析器AttributeSet传入到View的构造方法中。AttributeSet定义了用来解析xml节点属性的API。View通过AttributeSet生成TypedArray,并从中读取View节点中定义的属性。最后LayoutInflater将会通过递归的方式创建xml根节点下的所有孩子节点。
  5. LayoutInflater.inflate方法接收一个root对象以及一个Boolean类型的attachToRoot变量。这两个参数的值,直接影响了inflate方法的返回值,以及生成的xml根节点的LayoutParams和属性。
  • inflater.inflate(R.layout.left_fragment, container, false)和LayoutInflater.from(parent.getContext()).inflate(R.layout.fruit_item, parent, false)方法的区别?
  1. inflater.inflate(R.layout.left_fragment, container, false)方法用于在Activity中加载一个布局文件,将其转化为一个View对象,并将这个View对象添加到指定的容器中,返回这个View对象。参数R.layout.left_fragment表示加载的布局文件,container表示将其添加到的容器,false表示是否将其添加到container中,这里表示不添加,返回的是该View对象。它通常用于Activity或Fragment中使用,主要用于初始化UI布局。

  2. LayoutInflater.from(parent.getContext()).inflate(R.layout.fruit_item, parent, false)方法用于加载一个RecyclerView或ListView中的一个列表项,并返回这个View对象。parent.getContext()表示获得列表项的父容器,即RecyclerView或ListView的父容器,然后将布局文件R.layout.fruit_item转化为一个View对象,并将这个View对象添加到RecyclerView或ListView的父容器中,返回这个View对象。这里的false表示不将这个View对象附加到父容器中。它主要用于优化RecyclerView的性能,避免在滑动过程中多次调用findViewById()方法。

     综上所述,这两种方法的主要区别在于应用场景。
     第一种方法主要用于初始化UI界面布局
     第二种方法主要用于优化RecyclerView或ListView的性能,避免频繁地调用findViewById()方法。
     注意:容器是指在Android布局中用于存放其他控件的控件,例如LinearLayout、RelativeLayout等。
     而父容器指的是包含子控件的最外层容器,即在XML文件中定义布局的最外层控件,是一个顶级容器。
     在使用LayoutInflater.inflate()方法时,第二个参数表示将该View添加到哪个容器中,而第三个参数表示是否添加该View。
     当第三个参数为true时,表示添加该View到第二个参数容器中,当第三个参数为false时,表示该View并不自动添加到第二个参数容器中。
     而在LayoutInflater.from()方法中,第二个参数parent就表示父容器,即该View的直接上级容器。
    

常见配置代码

  • android:exported=“true“:表示当前Activity是否可以被另一个Application的组件启动:true允许被启动;false不允许被启动。
  • IntentFilter:意图过滤器,当我们隐式的启动系统组件的时候,就会根据IntentFilter来筛选出合适的进行启动。比如有时候点击一个网页链接,会弹出多个应用,让用户选择用哪个浏览器去打开该链接,就是这种情况。如果组件的 IntentFilter 与 Intent 中的 IntentFilter 正好匹配,系统就会启动该组件,并把 Intent 传递给它。如果有多个组件同时匹配到了,系统则会弹出一个选择框,让用户选择使用哪个应用去处理这个 Intent
  • LayoutParams:相当于一个Layout的信息包,封装了Layout的位置、宽、高等信息

工程配置文件

Toast的简单使用

通过静态方法 makeText()创建出一个 Toast 对象,然后 show()出来就可以了。
makeText()方法需要传入 3 个参数。
第一个参数是 Context,由于活动本身就是一个 Context 对象,因此这里直接传入MainActivity.this 即可。
第二个参数是 Toast 显示的文本内容。
第三个参数是 Toast显示的时长,有两个内置常量可以选择 Toast.LENGTH_SHORT 和 Toast.LENGTH_LONG。

1Toast.makeText(MainActivity.this,"Hello World!",Toast.LENGTH_SHORT).show();

intent对象的通俗解释

  • HTML的页面程序是使用"超链接"来实现页面之间的跳转,而Android应用程序界面是由一个或多个Activity组成的(一个Activity相当于HTML的一个页面),当一个Android应用程序具有多个相互联系的Activity时,就需要通过Intent对象来实现跳转
  • Intent的作用不仅用于实现Activity之间的跳转,它还是Android平台的各个部分之间实现信息沟通的桥梁。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值