一些xml中的标签定义

一、 AndroidStudio中的线性布局(LinearLayout)多用于按钮的水平或垂直排列
二、LinearLayout常用属性

  1. orientation:布局中组件的排列方式
    android:orientation=“vertical”(组件垂直排列)
    android:orientation=“horizontal”(组件水平排列)

2、gravity:控制组件所包含的子元素的对齐方式
3、**layout_gravity:**控制该组件在父容器中的对其方式
4、layout_width:布局的宽度,一般不直接写数字
通常android:layout_width=“match_parent”(填满容器的意思)
**layout_height:**布局的高度,
通常android:layout_height=“match_parent”
5、id:为该组件设置一个资源id,在java文件中可以通过findViewById(id)找到该组件
6、background:为该组件设置一个背景图片,或者直接用颜色覆盖
7、wrap_content:和组件本身大小适配
match_parent:和组件适配

三、TextView控件基本属性:
TextView控件就是可以写在中的
1、**layout_width=“match_parent”**控件的宽度是适应父容器的
layout_height=“wrap_content”,控件的高度与控件本身大小适配

2、TextView中也有:
id
background
gravity
text

四、EditText是一个常用的控件,也是一个比较重要的组件,是用户跟安卓应用进行数据传输的窗户
1、ems用法:
android:ems=“10”,设置TextView或EditText的宽度为10个字符的宽度

五、BMI的整体代码:
1、BMI计算器的布局文件,
activity_main.xml,代码如下:

<?xml version="1.0" encoding="utf-8"?>
<!--更改布局为线性布局LinearLayout水平布局:垂直布局:vertical-->
<!--这个最外面的Linearout是整个大页面的布局-->
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"android:orientation="vertical"><!--第一组身高组件--><!--wrap_content:和组件本身大小适配--><!--match_parent:和父窗口适配--><!-- 下边这个TextView是第一行 “身高”这两个字的布局  --><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/tv1"android:text="身高"/><!--EditText 在开发中也是经常用到的控件,也是一个比较必要的组件,可以说它是用户跟Android应用进行数据传输的窗户--><!--android:ems ="10"设置TextView或者Edittext的宽度为10个字符的宽度--><!-- 下面这个EditView是用户输入身高为多少的那个横线区域   --><EditTextandroid:id="@+id/shengao"android:layout_width="match_parent"android:layout_height="wrap_content"android:ems="10"/><!--第二组体重组件--><!-- 下边这个TextView是第一行 “体重”这两个字的布局  --><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/tv2"android:text="体重"/><!-- 下面这个EditView是用户输入体重为多少的那个横线区域   --><EditTextandroid:id="@+id/tizhong"android:layout_width="match_parent"android:layout_height="wrap_content"android:ems="10"/><!--剩下的一个按钮“计算”--><Buttonandroid:id="@+id/btn1"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="计算"/><!--剩下的另一个按钮“重置”--><Buttonandroid:id="@+id/btn2"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="重置"/></LinearLayout>

视图如下:

2、BMI的java代码,是写在MainActivity中的:
这里补充Activity的生命周期:
它的的四个阶段:
(1)开始Activity:在这个阶段依次执行3个生命周期方法:onCreate()、onStart()和onResume()。
(2)Activity失去焦点:如果在Activity获得焦点的情况下进入其他的Activity,这时当前的Activity会失去焦点。在这一阶段,会依次执行onPause()和onStop()方法。
(3)Activity重新获得焦点:如果Activity重新获得焦点,会依次执行 3个生命周期方法:onRestart()、onStart()和onResume()。
(4)关闭Activity:当Activity被关闭时系统会依次执行3个生命周期方法:onPause()、onStop()和onDestroy()。
(5)七个生命周期方法如下,它们的作用见下面示例方法注释中

protected void onCreate(Bundle savedInstanceState)protected void onStart()//当Activity第一次被创建时调用,我们可以在这进行初始化操作protected void onResume()protected void onPause()protected void onStop()protected void onRestart()protected void onDestroy()

(6)MainActivity.java的代码

package cn.tedu.bmi;import androidx.appcompat.app.AppCompatActivity;import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;public class MainActivity extends AppCompatActivity {private EditText shengao,tizhong;private Button jisuan,quxiao;//接收身高体重的基本数据类型private double height,weight=0;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//调用父类的onCreate构造函数,setContentView(R.layout.activity_main);//设置当前的Activity显示的内容按activity_main.xml布局//通过id来获取控件对象shengao=(EditText) findViewById(R.id.shengao);tizhong=(EditText) findViewById(R.id.tizhong);jisuan=(Button) findViewById(R.id.btn1);quxiao=(Button) findViewById(R.id.btn2);//为“计算”按钮添加监听事件jisuan.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//首先需要去判断两个输入框不为空if(shengao.getText()==null&&shengao.getText().toString().trim().equals("")){shengao.setError("身高不能为空!");return;}if(tizhong.getText()==null&&tizhong .getText().toString().trim().equals("")){shengao.setError("体重不能为空!");return;}//当身高输入框中的内容获取不为空if(shengao.getText()!=null&&!shengao.getText().toString().trim().equals("")){//把获取到输入框中的基本内容赋值给基本数据类型height=Double.parseDouble(shengao.getText().toString());}//当体重输入框中的内容获取不为空if(tizhong.getText()!=null&&!tizhong.getText().toString().trim().equals("")){//把获取到输入框中的基本内容赋值给基本数据类型height=Double.parseDouble(tizhong.getText().toString());}//BMI计算公式:BMI=体重/身高/身高  (体重:kg,身高:m)double bmi=weight*5000/height/height;//这里输入的体重是瑾,身高是cmif(bmi<18){//偏瘦Toast.makeText(MainActivity.this,"您的身材偏瘦,请增加营养摄入",Toast.LENGTH_LONG).show();}else if(bmi >=20&&bmi<=25){//标准Toast.makeText(MainActivity.this,"您的身材标准,请保持身材",Toast.LENGTH_LONG).show();}else if(bmi<30){//偏胖Toast.makeText(MainActivity.this,"您的身材偏瘦,请增加营养摄入",Toast.LENGTH_LONG).show();}else{//肥胖Toast.makeText(MainActivity.this,"您的身材偏胖,请增加身体锻炼",Toast.LENGTH_LONG).show();}}});//为“重置“按钮添加监听事件quxiao.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//不想计算了,点击之后,清空输入框中的内容shengao.setText(" ");tizhong.setText(" ");}});}
}

AndroidStudio实训1——BMI计算器相关推荐

  1. 【闲来无事】仿知乎广告Banner的切换功能,androidstudio实训总结

    }else{ isScrollUp = true; float r = curY / threshold ; ivOrange.setImageBitmap(circleBitmap(bmOrange ...

  2. 计算机单片机实训报告,计算器单片机实训报告.doc

    计算器单片机实训报告 重庆电力高等专科学校 单片机实训报告 简易计算器 专业:电子信息工程技术 班级:信息1212 组员:张忠艳 学号:201203020207 组员:王传胜 学号:201203020 ...

  3. Ajax与三层架构实训教案

    教 案 课程:Ajax与三层架构 单位:信息工程学院 教师: XXX 课程简介 <Ajax与三层架构>是一门实用性强,知识面广的课程,该课程的先修课程为<Java程序设计>.& ...

  4. [JSP暑假实训] 二.JSP网站创建及Servlet实现注册表单提交、计算器运算

    本系列文章是作者暑假给学生进行实训分享的笔记,主要介绍MyEclipse环境下JSP网站开发,包括JAVA基础.网页布局.数据库基础.Servlet.前端后台数据库交互.DAO等知识. 本篇文章开始讲 ...

  5. java质数和合数的程序_《java项目实训》课程设计计算器.doc

    <java项目实训>课程设计计算器.doc 课程设计报告课程名称JAVA项目实训课程设计设计名称基于JAVA计算器的设计与实现学生学号学生姓名学生学号学生姓名学生学号学生姓名学生学号学生姓 ...

  6. 编程计算机公司加乘,实训一计算器编程的实现

    <实训一计算器编程的实现>由会员分享,可在线阅读,更多相关<实训一计算器编程的实现(11页珍藏版)>请在人人文库网上搜索. 1.信息工程学院信息工程学院 综合实训报告综合实训报 ...

  7. 简单计算器(Java实训)

    简单计算器(Java实训) 实训目的: 掌握 Java GUI 开发中的布局管理和事件处理机制. 实训要求: (1)要使用 java 的 GUI 设计出计算器界面.(2)通过界面 按钮,可以实现整数或 ...

  8. android计算器实训报告总结,大学生计算机实训报告

    大学生计算机实训报告 实训是职业技能实际训练的简称,是指在学校控制状态下,按照人才培养规律与目标,对学生进行职业技术应用能力训练的教学过程.小编今天为大家带来大学生计算机实训报告,一起来学习一下吧! ...

  9. android 实训的背景,Android实训项目作业.doc

    Android实训项目作业 2-1用整型数计算两个数的和2 2-7排列任意4个数的顺序,按从小到大顺序输出2 2.1编写显示下列图形的程序.2 3.1编写程序,当点击按钮命令后,页面标题及文本组件的文 ...

最新文章

  1. Win32API 窗口程序的创建7大步骤
  2. python中turtle画酷炫图案-用python打造可视化爬虫监控系统,酷炫的图形化界面
  3. 计算机考研编程题占,纪念***去的2018计算机考研编程题
  4. iOS crash 崩溃问题的追踪方法
  5. 人民广场怎么走?地铁换乘算法的实现
  6. Linux sed 删除行命令常见使用详解
  7. input文本框设置和移除默认值
  8. MySQL—赋权(grant)和回收权限(revoke)
  9. 数据库无响应(hang住)故障处理思路和方法
  10. 中国计算机游戏竞赛,信任与欺骗的游戏:全球计算机游戏程序竞赛,诠释了《老子通释》...
  11. Wing IDE注册破解方法
  12. Symantec清除工具 CleanWipe_14.3.558.1000
  13. PacBio English 经典语句
  14. 阿里云RPA(机器人流程自动化)干货系列之五:业务流程梳理方法
  15. phpstorm正则匹配清理被蠕虫病毒污染的html文件DropFileName = “svchost.exe” Ramnit
  16. Android 卡顿优化之 Skipped * frames 掉帧的计算
  17. 「Nescafé26」 Freda的传呼机 【最短路径+树上倍增】
  18. Android View 生成唯一 Id
  19. DSP28379D_ePWM同步触发差分AD
  20. 电销人员如何应对工作中的挫败感

热门文章

  1. Win8开始菜单方案第N+1种
  2. JS实现图片下载的数种方法
  3. 如何才能成为一名医生?
  4. mysql 删除最后100条_sql-如何回滚我在MySQL中的最后一个删除命令?
  5. Vuex中浏览器安装devtools
  6. Microsoft Excel 教程:如何在 Excel 中将文本拆分为不同的列?
  7. [语音录制与播放]stm32+adc+dac
  8. 命令行--cd命令的使用
  9. word/excel/ppt软件中删除一堆多余的加载项
  10. 3.GSAP(TweenMax手册/TweenLite手册)之二