此实例是让用户输入性别和身高,以此来判断用户的最佳合适的体重(计算最佳体重按照科学数据计算)。
效果如图
res/layout/main.xml(主页面):
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/tableLayout1" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="计算您的标准体重"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="性别:"/> <RadioGroup android:id="@+id/radioGroup1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <RadioButton android:id="@+id/radio0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="男" android:checked="true"/> <RadioButton android:id="@+id/radio1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="女"/> </RadioGroup> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="身高:"/> <EditText android:layout_width="40pt" android:layout_height="wrap_content" android:id="@+id/stature"/> </LinearLayout> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="确定"/> </LinearLayout>
res/layout/main2.xml(结果页面):
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/sex" android:textSize="10pt" android:text="null"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/stature" android:textSize="10pt" android:text="null"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weight" android:textSize="10pt" android:text="null"/> </LinearLayout>
保存身高和体重的JavaBean(实现了java.io.Seralizable接口):
(在使用Bundle类传递数据包时,可以放入一个可序列化的对象。这样,当要传递的数据字段比较多时,采用该方法比较方便。在本实例中,为了在Bundle中放入一个可序列化的对象,我们创建了一个可序列化的Java类,方便存储可序列化对象)
Info.java:
package com.example.test; import java.io.Serializable; public class Info implements Serializable{ private static final long serialVersionUID=1L; private String sex="";//性别 private int stature=0;//身高 public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getStature() { return stature; } public void setStature(int stature) { this.stature = stature; } }
MainActivity:
package com.example.test; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.Toast; public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button button=(Button)findViewById(R.id.button1); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Info info=new Info();//实例化一个保存输入基本信息的对象 if("".equals(((EditText)findViewById(R.id.stature)).getText().toString())){ Toast.makeText(MainActivity.this, "请输入您的身高,否则不能计算!", 1).show(); return; } int stature=Integer.parseInt(((EditText)findViewById(R.id.stature)).getText().toString()); //获取设置性别的单选按钮组 RadioGroup sex=(RadioGroup)findViewById(R.id.radioGroup1); //获取单选按钮组的值 for (int i = 0; i < sex.getChildCount(); i++) { RadioButton r=(RadioButton)sex.getChildAt(i); if(r.isChecked()){ info.setSex(r.getText().toString()); break; } } info.setStature(stature); Bundle bundle=new Bundle(); bundle.putSerializable("info", info); Intent intent=new Intent(MainActivity.this,ContentActivity.class); intent.putExtras(bundle); startActivity(intent); } }); } }
结果页面:
(别忘记在AndroidManifest.xml中注册新的Activity:
在<application></application>标签中添加
<activity android:label="显示结果" android:icon="@drawable/ic_launcher" android:name=".ContentActivity"/>
)
package com.example.test; import java.text.DecimalFormat; import java.text.NumberFormat; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.widget.TextView; public class ContentActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main2); TextView sex=(TextView)findViewById(R.id.sex); TextView stature=(TextView)findViewById(R.id.stature); TextView weight=(TextView)findViewById(R.id.weight); Intent intent=this.getIntent();//获取Intent对象 Bundle bundle=intent.getExtras();//获取传递的数据包 Info info=(Info)bundle.getSerializable("info");//获取一个可序列化的Info对象 sex.setText("您是一位"+info.getSex()+"士"); stature.setText("您的身高是"+info.getStature()+"厘米"); //显示计算后的标准体重 weight.setText("您的体重标准是:"+getWeight(info.getSex(),info.getStature())+"公斤"); } /* 功能:计算标准体重 * @param sex * @param stature * @return */ private String getWeight(String sex, int stature) { String weight="";//保存体重 NumberFormat format=new DecimalFormat(); if(sex.equals("男")){ weight=format.format((stature-80)*0.7);//计算男士标准体重 }else{ weight=format.format((stature-70)*0.6);//计算女士标准体重 } return weight; } }
当我输入男,172cm身高时,得到我的标准体重是.....啊,该减肥了(你学会了吗?)
转载请注明出处:http://blog.csdn.net/acmman/article/details/45127081