第一行代码--初步学习--Android四大组件-activity1
活动是什么活动activity是最吸引用户的地方它是一种可以包含用户界面的组件主要用于和用户进行交互App至少拥有一个Activity。活动的基本用法活动创建过程1.新建Kotlin类 继承 AppCompatActivity2.重写Oncreate方法3.绑定布局 setContentView(布局id)4.在AndroidMainifest.xml注册在布局ID中添加控件布局控件位置res/layout/activity_main.xml常用布局控件基础公共属性layout_width/layout_heightmatch_parent铺满父容器wrap_content包裹内容dp尺寸单位margin外边距padding内边距gravity内部对齐1.LinearLayout 线性布局 垂直或者水平垂直/水平的XML布局示例?xml version1.0 encodingutf-8? !--线性布局必要属性 orientation -- LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/android android:idid/main android:layout_widthmatch_parent android:layout_heightmatch_parent android:orientationvertical //垂直 android:orientationhorizontal //水平 android:padding30dp TextView android:layout_widthwrap_content android:layout_heightwrap_content android:text我是文本TextView android:textSize18sp/ Button android:layout_widthwrap_content android:layout_heightwrap_content android:text我是按钮Button android:layout_marginTop15dp/ EditText android:layout_widthmatch_parent android:layout_heightwrap_content android:hint请输入内容 android:layout_marginTop15dp/ /LinearLayoutConstraintLayout 约束布局主流推荐?xml version1.0 encodingutf-8? androidx.constraintlayout.widget.ConstraintLayout xmlns:androidhttp://schemas.android.com/apk/res/android xmlns:apphttp://schemas.android.com/apk/res-auto android:layout_widthmatch_parent android:layout_heightmatch_parent android:padding20dp TextView android:idid/tv_title android:layout_widthwrap_content android:layout_heightwrap_content android:text约束布局标题 android:textSize20sp app:layout_constraintTop_toTopOfparent app:layout_constraintStart_toStartOfparent/ Button android:idid/btn_ok android:layout_widthwrap_content android:layout_heightwrap_content android:text确定 app:layout_constraintTop_toBottomOfid/tv_title app:layout_constraintStart_toStartOfparent android:layout_marginTop20dp/ /androidx.constraintlayout.widget.ConstraintLayout常用单选/复选控件RadioGroup 单选RadioGroup android:layout_widthwrap_content android:layout_heightwrap_content android:orientationhorizontal RadioButton android:layout_widthwrap_content android:layout_heightwrap_content android:text男/ RadioButton android:layout_widthwrap_content android:layout_heightwrap_content android:text女/ /RadioGroupCheckBox 复选CheckBox android:layout_widthwrap_content android:layout_heightwrap_content android:text记住密码/在AndroidMainifest.xml文件中注册在活动中使用Toasttoast简介Toast 是短暂弹出的提示消息自动显示、自动消失不占用焦点。默认底部显示 Toast.makeText(this, 登录成功, Toast.LENGTH_SHORT).show() // 长时提示 Toast.makeText(this, 网络请求失败, Toast.LENGTH_LONG).show()在活动中使用Menu菜单Menu的作用页面右上角三点菜单、选项菜单放设置、关于、退出等功能。使用Menu三步走默认放在标题处在res/menu新建菜单 xml 文件重写onCreateOptionsMenu()加载菜单重写onOptionsItemSelected()处理菜单项点击override fun onCreateOptionsMenu(menu: Menu?): Boolean { menuInflater.inflate(R.menu.main_menu,menu) return true } override fun onOptionsItemSelected(item: MenuItem): Boolean { when(item.itemId) { R.id.menu_settings - Toast.makeText(this, 设置, Toast.LENGTH_SHORT).show() R.id.menu_about - Toast.makeText(this,关于,Toast.LENGTH_SHORT).show() R.id.menu_exit - finish() } return true }放在按钮点击处在res/menu新建菜单 xml 文件在主页面布局按钮按钮点击触发菜单栏val popup PopupMenu(this,button) popup.menuInflater.inflate(R.menu.main_menu, popup.menu) // 菜单点击 popup.setOnMenuItemClickListener { item - when (item.itemId) { R.id.menu_settings - Toast.makeText(this, 设置, Toast.LENGTH_SHORT).show() R.id.menu_about - Toast.makeText(this, 关于, Toast.LENGTH_SHORT).show() R.id.menu_exit - finish() } true } popup.show() // 显示main_menu.xml文件内容?xml version1.0 encodingutf-8? menu xmlns:androidhttp://schemas.android.com/apk/res/android item android:idid/menu_settings android:title设置/ item android:idid/menu_about android:title关于我们/ item android:idid/menu_exit android:title退出/ /menu总结Activity 是 Android 四大组件之一负责用户界面展示与交互是 App 必不可少的组件。活动必须继承AppCompatActivity在onCreate中绑定布局并在AndroidManifest.xml中注册才能使用。常用布局包括 LinearLayout线性布局、ConstraintLayout约束布局 等可摆放 TextView、Button、EditText、RadioButton、CheckBox 等基础控件。Toast 是轻量级提示工具可快速弹出消息自动消失。Menu 菜单 有两种实现方式传统方式依赖标题栏重写onCreateOptionsMenu和onOptionsItemSelected。独立弹窗方式使用PopupMenu不依赖标题栏、不限制位置更灵活。活动是 Android 开发的基础掌握页面跳转、界面布局、提示信息、菜单操作是学习 Android 的核心技能。