深入浅出Android:初识Intent(BMI)

1、strings.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <resources>
 3 
 4     <string name="app_name">BMI</string>
 5         <string name="height">身高(cm)</string>
 6         <string name="weight">体重(kg)</string>
 7         <string name="bmi_btn">计算BMI值</string>
 8         <string name="bmi_result">你的BMI值是</string>
 9         <string name="about_title">关于Android BMI</string>
10         <string name="about_msg">Android BMI Calc\n
11             作者 lovemu\n\n
12             lovemu+android[at]gmail.com</string>
13         <string name="ok_label">确认</string>
14         <string name="homepage_label">首页</string>
15         <string name="homepage_uri">http://androidbmi.googlecode.com/</string>
16     <string name="hello_world">Hello world!</string>
17     <string name="menu_settings">Settings</string>
18 
19 </resources>

2、MainActivity.java

  1 package example.bmi;
  2 
  3 import java.text.DecimalFormat;
  4 
  5 import android.net.Uri;
  6 import android.os.Bundle;
  7 import android.app.Activity;
  8 import android.app.AlertDialog;
  9 import android.content.DialogInterface;
 10 import android.content.Intent;
 11 import android.view.Menu;
 12 import android.view.View;
 13 import android.view.View.OnClickListener;
 14 import android.widget.Button;
 15 import android.widget.EditText;
 16 import android.widget.TextView;
 17 
 18 public class MainActivity extends Activity {
 19 
 20     @Override
 21     protected void onCreate(Bundle savedInstanceState) {
 22         super.onCreate(savedInstanceState);
 23         setContentView(R.layout.activity_main);
 24         
 25         findViews();
 26         setListensers();
 27     }
 28     private Button button_calc;
 29     private EditText field_height;
 30     private EditText field_weight;
 31     private TextView view_result;
 32     private TextView view_suggest;
 33     private void findViews()
 34     {
 35         button_calc=(Button)findViewById(R.id.submit);
 36         field_height=(EditText)findViewById(R.id.height);
 37         field_weight=(EditText)findViewById(R.id.weight);
 38         view_result=(TextView)findViewById(R.id.result);
 39         view_suggest=(TextView)findViewById(R.id.suggest);
 40     }
 41     private void setListensers()
 42     {
 43         button_calc.setOnClickListener(calcBMI);
 44     }
 45     private Button.OnClickListener calcBMI=new Button.OnClickListener()
 46     {
 47         public void onClick(View v)
 48         {
 49             DecimalFormat nf=new DecimalFormat("0.00");
 50 
 51             double height=Double.parseDouble(field_height.getText().toString())/100;
 52             double weight=Double.parseDouble(field_weight.getText().toString());
 53             double BMI=weight/(height*height);
 54             view_result.setText(getText(R.string.bmi_result)+nf.format(BMI));
 55             //give health advice
 56             if(BMI>25)
 57             {
 58                 view_suggest.setText(R.string.advice_heavy);
 59             }
 60             else if(BMI<20)
 61             {
 62                 view_suggest.setText(R.string.advice_light);
 63                }
 64             else
 65             {
 66                 view_suggest.setText(R.string.advice_average);
 67             }
 68             openOptionsDialog();
 69         }    
 70     };
 71     private void openOptionsDialog()
 72     {
 73         new AlertDialog.Builder(MainActivity.this)
 74             .setTitle(R.string.about_title)
 75             .setMessage(R.string.about_msg)
 76             .setPositiveButton(R.string.ok_label,
 77                     new DialogInterface.OnClickListener() {
 78                 public void onClick(
 79                         DialogInterface dialoginterface,int i){
 80                    }
 81                 
 82                 })
 83             .setNegativeButton(R.string.homepage_label,
 84                     new DialogInterface.OnClickListener() {
 85                         
 86                         @Override
 87                         public void onClick(DialogInterface dialog, int which) {
 88                             // TODO Auto-generated method stub
 89                             Uri uri=Uri.parse(getString(R.string.homepage_uri));
 90                             Intent intent=new Intent(Intent.ACTION_VIEW,uri);
 91                             startActivity(intent);
 92                         }
 93                     })
 94             .show();
 95     }
 96 
 97     @Override
 98     public boolean onCreateOptionsMenu(Menu menu) {
 99         // Inflate the menu; this adds items to the action bar if it is present.
100         getMenuInflater().inflate(R.menu.activity_main, menu);
101         return true;
102     }
103     
104 }

3、效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/463020.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

xcode10 自定义代码块

xcode10 之后自定义代码块已经不是10之前&#xff0c;直接将代码拖拽到代码块列表进行编辑了&#xff0c;10之后自定义代码块的方法&#xff0c;选择代码右键Create Code Snippet 在这里查看代码块 然后选中想要自定义的代码块&#xff0c;光标放在图标上&#xff0c;就会出现个…

MySQL 引擎特性 · InnoDB Buffer Pool

前言 用户对数据库的最基本要求就是能高效的读取和存储数据&#xff0c;但是读写数据都涉及到与低速的设备交互&#xff0c;为了弥补两者之间的速度差异&#xff0c;所有数据库都有缓存池&#xff0c;用来管理相应的数据页&#xff0c;提高数据库的效率&#xff0c;当然也因为…

Foursquare引爆了什么

我们可以把Twitter、Foursquare和Facebook看作新一代互联网的三个图层&#xff0c;“时间、地点、与谁一起”。这三个图层的叠加&#xff0c;就是未来互联网最完整的画面。 谷歌一直在寻找一种方法让天底下所有商户都到它的Adsense上来做广告。换句话说&#xff0c;就是创造一种…

“BindingNavigator”如何在删除前弹出确认框?

问题的缘起在于有一个学习数据操作的人询问我“BindingNavigator”如何点击“删除”前进行确认。我一开始模拟创建了一个表&#xff0c;然后通过设计器的方式生成了这四类控件&#xff0c;随后拖拽一个Navigator到WinForm上&#xff0c;双击红色叉叉部分&#xff0c;写入一个Me…

解决虚拟机卡顿、卡死、待机后不动的情况(真实有效

本人环境&#xff1a; VM workstation 17.5 ubuntu 22.04 虚拟机配置&#xff1a;4核 4g issue&#xff1a; 出现开机卡死不动运行一段时间&#xff0c;可能半小时不到&#xff0c;就页面卡死不动经常需要关机重启才解决&#xff0c;可能没有解决 1.配置虚拟化引擎 这一步我称…

JVM内存溢出时快照转存HeapDump到文件

# Heap Dump 获取方式使用 JVM 参数获取 dump 文件进入Tomcat的bin目录&#xff0c;在catalina.sh文件里添加如下内容 >-XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPathc:\jakarta-tomcat\webapps 然后使用MAT分析工具&#xff0c;如jhat命令&#xff0c;eclipse的mat插件…

为什么auto_ptr智能指针不能作为STL标准容器的元素

上个星期的博客shared_ptr源码剖析里其实遗漏了一个问题:为什么auto_ptr不可以作为STL标准容器的元素&#xff0c;而shared_ptr可以? 我在网上看了好多篇讲shared_ptr的文章里讲到了这个问题&#xff0c;不过大多文章只是简单两笔带过。我研究了一下这个问题&#xff0c;发现…

【读书笔记】MSDN 上关于加密解密的一个例子

MSDN上的一个不错的例子&#xff1a; 那从内存清除密码的句子有个问题。 需要再看看这个问题到底是怎么回事&#xff0c;怎么解决 cannot convert from Sytem.InPtr to ref string 把下面这句 public static extern bool ZeroMemory(ref string Destination, int Length); 用这…

[luogu3380][bzoj3196]【模板】二逼平衡树【树套树】

题目地址 【洛谷传送门】 题目大意 区间查询k的排名&#xff0c;查找k排名的数&#xff0c;单点修改&#xff0c;区间前驱&#xff0c;区间后继。 感想 真的第一次写树套树&#xff0c;整个人都不对了。重构代码2次&#xff0c;发现样例都过不了&#xff0c;splay直接爆炸&…

Parquet格式描述

背景 2010年 google 发表了一篇论文《Dremel: Interactive Analysis of Web-Scale Datasets》&#xff0c;介绍了其 Dermel 系统是如何利用列式存储管理嵌套数据的&#xff0c;嵌套数据就是层次数据&#xff0c;如定义一个班级&#xff0c;班级由同学组成&#xff0c;同学的信…

Notepad++ 快捷键 大全

修改快捷键的话&#xff1a;设置----管理快捷键----就好比第一个快捷键新建吧--------鼠标双击&#xff0c;然后会弹出来对话框让你对具体想要设置的快捷键进行设置&#xff0c;所有的快捷键都是这么设置的&#xff0c;但是我就是不明白&#xff0c;你要设置的是哪个&#xff1…

Kevin专栏---如何制作试用版安装包

首先需要在http://activationservice.installshield.com/doLogin.do注册一个试用账号。注册完成后系统会自动发送一个15天的试用账号和密码。 在图标Trialware Files上点击鼠标右键&#xff0c;创建一个试用配置项&#xff08;见下图&#xff09;。 首先选择试用文件&#xff0…

ldd命令解析

在linux中&#xff0c;经常会碰到查看可执行文件需要依赖哪些动态链接库&#xff0c;这时ldd命令就可以排上用场了 由于某种原因&#xff0c;屏蔽了一些内容&#xff0c;结果如下&#xff1a; 可以根据结果查找对应的动态链接库

UDP和TCP协议包大小的计算-转

UDP和TCP协议包大小的计算 UDP一次发送数据包的大小&#xff0c;TCP一次发送数据包的大小。MTU最大传输单元&#xff0c;这个最大传输单元实际上和链路层协议有着密切的关系&#xff0c;EthernetII帧的结构DMACSMACTypeDataCRC由于以太网传输电气方面的限制&#xff0c;每个以太…

洛谷 - P1361 - 小M的作物 - 最小割 - 最大权闭合子图

第一次做最小割&#xff0c;不是很理解。 https://www.luogu.org/problemnew/show/P1361 要把东西分进两类里&#xff0c;好像可以应用最小割的模板&#xff0c;其中一类A作为源点&#xff0c;另一类B作为汇点&#xff0c;价值就是边的容量。 然后最小割一定会割断每个中间结点…

LVS

1、安装lvs 在分发器上在172.16.10.1上执行&#xff0c;事先应该配置好你的yum源&#xff0c;保证能够读取介质中的Cluster目录&#xff01;&#xff03;yum install ipvsadm编写&#xff0c;分发规则&#xff08;注意&#xff0c;清空之前的防火墙iptable -F ; iptable -t nat…

linux Swap交换分区概念

Swap交换分区概念 什么是Linux swap space呢&#xff1f;我们先来看看下面两段关于Linux swap space的英文介绍资料: Linux divides its physical RAM (random access memory) into chucks of memory called pages. Swapping is the process whereby a page of memory is copie…

ThinkPHP 数据库操作(七) : 视图查询、子查询、原生查询

视图查询 视图查询可以实现不依赖数据库视图的多表查询&#xff0c;并不需要数据库支持视图&#xff0c;例如&#xff1a; Db::view(User,id,name)->view(Profile,truename,phone,email,Profile.user_idUser.id)->view(Score,score,Score.user_idProfile.id)->where(…

C++中的结构体函数

代码 #include "stdafx.h"structTest{ intnum; Test() { printf("11111111"); } Test(inti) { this->numi; } voidfun() { printf("fun"); }};voidmain( void){ Test a(1); …

Linux 查看进程的命令

1、ps ps -x : 只显示当前用户下的所有进程信息 ps -aux : 所有用户下的进程信息 2、top 显示动态的进程信息&#xff0c;5s刷新一次&#xff1b; 3、htop 需要自己安装htop命令&#xff0c;比较牛&#xff0c;个人也只是简单使用过&#xff0c;比top命令快&#xff0c;可…