zoukankan      html  css  js  c++  java
  • (10 Android)实验项目_Android UI与Activity组件(上)

    (10 Android)实验项目_Android UI与Activity组件(上)

    一、实验目的

    (1) 掌握常用的布局方法。

    (2) 掌握Activity组件的生命周期。

    二、实验内容及步骤

    在Android Studio中,新建名为Example3的项目,然后在此项目中完成如下几个模块的设计:

    1.掌握各种布局的特点、Android常用控件的使用

    (1) 在项目里,新建名为example3_1的模块。

    (2) 在默认的约束布局里,添加垂直线性布局并内嵌水平线性布局,然后依次添加文本框、下拉列表、单选按钮组和复选框等控件。

    (3) 部署模块并做运行测试。

    (4) 在文件夹res/layout 里新建一个布局文件,指定根标签为FrameLayout (帧布局)。在Design模式下,向该布局依次添加两个控件,查验后添加的控件对象会在前一控件对象上进行覆盖而形成遮挡。

    2. 掌握Activity组件的生命周期

    (1) 在项目里,新建名为example3_2的模块,在MainActivity程序的onCreate()方法里,使用Log.i()语句,打印一条Log信息。

    (2) 在onCreate()方法体外的空白处,按【Ctrl+O】组合键,选择onRestart(),在该方法里也使用Log.i()语句打印一条Log信息,其Tag名与onCreate()方法里Log.i()语句指定的名称相同。依次重写组件的其他生命周期方法onStart()、onResume()、onPause()、onStop()和onDestory()。

    (3) 部署本模块并运行,打开Logcat控制台,按照程序里使用的Tag名过滤,观察所执行的生命周期方法。

    (4) 按返回键,观察所执行的生命周期方法。

    (5) 再次运行,将手机切换成横屏,观察所执行的生命周期方法。查验在执行onDestory()后,再重新执行onCreate()等生命周期方法。

    package com.example.example3_2;
    
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.util.Log;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            /*第一次安装运行或从任务栈激活,都将调用此方法*/
            setContentView(R.layout.activity_main);
            Log.i("mytest", "主Activity被创建了!—onCreate()");
        }
        @Override
        protected void onStart() {
            super.onStart();
            /*Activity从不可见变为可见时调用;Activity第一次被创建时也调用*/
            Log.i("wutest", "主Activity(从不可见变为)完全可见了!—onStart()");
        }
        @Override
        protected void onResume() {
            super.onResume();
            /*Resume系重新开始之意*/
            Log.i("wutest", "主Activity(重新)开始了!—onResume()");
        }
        @Override
        protected void onPause() {
            super.onPause();
            /*当来电时,除了会调用方法onPause()外,还会调用方法onStop()*/
            Log.i("wutest", "主Activity暂停了!—onPause()");
        }
        @Override
        protected void onStop() {
            super.onStop();
            /*进入其它Activity时调用(导致当前Activity进入Activity栈而不可见);主Activity按返回键也调用*/
            Log.i("wutest", "主Activity不可见了!—onStop()");
        }
        @Override
        protected void onRestart() {
            super.onRestart();
            /*Activity由停止状态变为运行状态时调用。例如,从任务栈重新运行程序时*/
            Log.i("wutest", "Activity restarted!—onRestart()");
        }
        @Override
        protected void onDestroy() {
            super.onDestroy();
            //主Activity按返回键会执行此回调方法
            Log.i("wutest", "主Activity被销毁了!—onDestroy()");
        }
        @Override
        public void finish() {  //不是生命周期方法,在按返回键会执行此回调方法,重写父类方法
            super.finish();  //销毁Activity(super.必须),屏蔽此行代码,将不会销毁Activity
            /*
                页面跳转时finish()方法应用的业务场景:
                场景1:在很多APP中,首次进入APP时需要登录才能进入到APP首页,但成功登录跳转到APP的首页后,再按返回键,
                应该直接返回到手机主界面而不是登录界面。
                场景2:在订单列表中,A activity 中点击新建订单进入新建订单 B activity 中,点击保存后,
                跳转到订单详情 C activity 中(在 B activity 的跳转到 C activity 时加入finish()方法),
                在 C activity 中点击返回键就可以直接返回到 A activity 中。
                结论:跳转后在按返回键时,不需要返回到原Activity 就可以使用finish()方法*/
            Log.i("wutest", "主Activity—finish()");
        }
    }
    
    
  • 相关阅读:
    linux上部署javaWeb项目
    Android 调试native的crash和anr
    你怎么知道你的网站K
    Win 10开门人类智慧的世界领先
    Preference如何增加在activity生命周期监听器
    智能指针模板,要管理动态分配的内存
    两分钟找到一些注意事项
    javascript---在自由落体实现
    URAL 1934 Black Spot --- 最短的简单修改
    最简单的ADABOOST人脸检测程序。COPY执行,前提是你配置OpenCV周围环境
  • 原文地址:https://www.cnblogs.com/chenhanhao/p/12536508.html
Copyright © 2011-2022 走看看