zoukankan      html  css  js  c++  java
  • 【Android Studio】安卓开发初体验2——Activity

    Activity是什么

    Activity用于提供可视化用户界面的组件,可以与用户进行交互来完成某项任务,一个应用程序中可以包含零个或多个活动

    Activity的创建 

    首先将左侧的Active Tool Window切换为Android

    接下来在java目录下的com.example.myapplication下创建一个新的empty activity

     

    勾选上Generate a Layout File就会自动生成该活动对应的布局文件

    另外,所有的Activity都需要在manifest下的AndroidManifest文件下进行注册

    不过无需手动进行注册,在Activity被创建的同时,已经自动完成了

    Menu的使用

    在res目录下新建一个名为menu的目录

    在menu目录下新建一个menu文件

    在menu的xml文件中配置两个选项卡

    接着回到MainActivity中重新onCreateOptionMenu()方法

    可以通过使用快捷键Ctrl+O来选择要重写的功能

    运行效果如图

     

    这时点击这些选项卡是得不到任何反馈的

    可以通过toast来显示一些文本

    makeText里的第一个参数是上下文,第二个是显示内容,第三个是显示时长

     

     

    Activity的跳转

    这里可以进行打印日志操作,从而更好的观察Activity的跳转

    在主活动的onCreate方法中添加

     可以在下面的logcat窗口中看到打印内容

    创建一个新的Activity,作为一会跳转的目标

    并为这个Activity添加日志打印操作

    class MainActivity2 : AppCompatActivity() {
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main2)
            Log.d("MainActivity2", "This is a the second activity da~")
        }
    }

    在原来的MainActivity的xml文件中直接丢一个button进去

    右边的窗口可以修改这个按钮的唯一id还有按钮文本内容

    使用Intent来实现活动的跳转

    在MainActivity中设置button的监听器以实现

    intent里第一个参数为上下文,第二个参数为跳转目标

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        Log.d("MainActivity", "this is a log message")
        val button0: Button = findViewById(R.id.button0)
        button0.setOnClickListener{
            val intent = Intent(this, MainActivity2::class.java)
            startActivity(intent)
        }
    }
    

    运行结果如图

     可以通过搜索看到打印日志

    可以通过intent将一个活动的数据传给下一个

    在MainActivity中

            button0.setOnClickListener{
                val data = "Hello, Activity2~"
                val intent = Intent(this, MainActivity2::class.java)
                intent.putExtra("extra_data", data)
                startActivity(intent)
            }

    接着在MainActivty2中进行获取

    val extraData = intent.getStringExtra("extra_data")
    Log.d("SecondActivity", "extra data is $extraData")

    运行得到结果

    参考资料:

    第一行代码 Android(第3版本)郭霖

    GDUFE移动应用开发课程

    谷歌安卓开发者文档指南——通用Intent:

    https://developer.android.google.cn/guide/components/intents-common?hl=zh_cn

  • 相关阅读:
    windows 的文件夹映射实现
    项目管理工具
    SSM(Spring+SpringMVC+MyBatis)高并发优化思路
    高性能高可用高并发技术架构的一些理解
    你懂什么是分布式系统吗?Redis分布式锁都不会?
    使用批处理文件(*.bat)同时打多个cmd窗口
    mysql删除重复数据只保留一条
    native2ascii命令
    利用编辑距离(Edit Distance)计算两个字符串的相似度
    eclipse如何正确部署tomcat7
  • 原文地址:https://www.cnblogs.com/leftstan/p/13734186.html
Copyright © 2011-2022 走看看