一.任务要求
如果是男性,标准体重=(身高-80)*0.7
如果是女性,标准体重=(身高-70)*0.6
二.训练目标。
1) 掌握RadioButton组件的使用
2) Intent的使用
3) 掌握如何在不同Activity之间通过Bundle传递数据。
三.代码
01.package com.test.weightcalculator;
02.
03.import android.app.Activity;
04.import android.content.Intent;
05.import android.os.Bundle;
06.import android.view.Menu;
07.import android.view.View;
08.import android.view.View.OnClickListener;
09.import android.widget.Button;
10.import android.widget.EditText;
11.import android.widget.RadioButton;
12.import android.widget.RadioGroup;
13.
14.public class MainActivity extends Activity {
15.
16. String Sex;
17. private RadioGroup sex;
18. private EditText height;
19. private RadioButton sex_choose;
20. private Button calculator;
21. @Override
22. protected void onCreate(Bundle savedInstanceState) {
23. super.onCreate(savedInstanceState);
24. setContentView(R.layout.activity_main);
25.
26. sex = (RadioGroup) findViewById(R.id.rg);
27.
28. sex.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
29. @Override
30. public void onCheckedChanged(RadioGroup group, int checkedId) {
31. sex_choose = (RadioButton)findViewById(sex.getCheckedRadioButtonId());
32. Sex = sex_choose.getText().toString();
33. }
34. });
35.
36. height = (EditText) findViewById(R.id.et1);
37. calculator = (Button) findViewById(R.id.btn1);
38. calculator.setOnClickListener(new ClickHandler());
39.
40. }
41.
42. class ClickHandler implements OnClickListener
43. {
44. @Override
45. public void onClick(View view)
46. {
47. String Height = height.getText().toString();
48. Intent intent=new Intent();
49. intent.setClass(getApplicationContext(), CalculatorActivity.class);
50. Bundle bundle=new Bundle();
51. bundle.putString("height", Height);
52. bundle.putString("sex", Sex);
53. intent.putExtras(bundle);
54. startActivity(intent);
55. }
56.
57. }
58. public boolean onCreateOptionsMenu(Menu menu) {
59. // Inflate the menu; this adds items to the action bar if it is present.
60. getMenuInflater().inflate(R.menu.main, menu);
61. return true;
62. }
63.}
CalculatorActivity:
[java] view plain copy
01.package com.test.weightcalculator;
02.
03.import android.app.Activity;
04.import android.os.Bundle;
05.import android.view.Menu;
06.import android.view.MenuItem;
07.import android.widget.TextView;
08.
09.public class CalculatorActivity extends Activity {
10.
11. double weight;
12. private TextView tvSec;
13. @Override
14. protected void onCreate(Bundle savedInstanceState) {
15. super.onCreate(savedInstanceState);
16. setContentView(R.layout.activity_calculator);
17. tvSec=(TextView) findViewById(R.id.tvSec);
18. Bundle bundle=getIntent().getExtras();
19. String height=bundle.getString("height");
20. String sex=bundle.getString("sex");
21. double Height=Double.valueOf(height).doubleValue();
22. if(sex=="女性")
23. weight = (Height - 70) * 0.6;
24. else
25. weight = (Height - 80) * 0.7;
26. tvSec.setText("你是一位"+sex+"\n"+"你的身高是"+height+"厘米\n"+"你的标准体重是"+weight+"公斤");
27. }
28.
29. @Override
30. public boolean onCreateOptionsMenu(Menu menu) {
31. // Inflate the menu; this adds items to the action bar if it is present.
32. getMenuInflater().inflate(R.menu.calculator, menu);
33. return true;
34. }
35.
36. @Override
37. public boolean onOptionsItemSelected(MenuItem item) {
38. // Handle action bar item clicks here. The action bar will
39. // automatically handle clicks on the Home/Up button, so long
40. // as you specify a parent activity in AndroidManifest.xml.
41. int id = item.getItemId();
42. if (id == R.id.action_settings) {
43. return true;
44. }
45. return super.onOptionsItemSelected(item);
46. }
47.}
activity_main.xml:
[html] view plain copy
01.<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
02. xmlns:tools="http://schemas.android.com/tools"
03. android:layout_width="match_parent"
04. android:layout_height="match_parent"
05. android:paddingBottom="@dimen/activity_vertical_margin"
06. android:paddingLeft="@dimen/activity_horizontal_margin"
07. android:paddingRight="@dimen/activity_horizontal_margin"
08. android:paddingTop="@dimen/activity_vertical_margin"
09. tools:context="com.test.weightcalculator.MainActivity" >
10.
11. <TextView
12. android:id="@+id/tv1"
13. android:layout_width="wrap_content"
14. android:layout_height="wrap_content"
15. android:layout_alignParentTop="true"
16. android:layout_centerHorizontal="true"
17. android:layout_marginTop="44dp"
18. android:text="@string/title"
19. android:textAppearance="?android:attr/textAppearanceLarge" />
20.
21. <TextView
22. android:id="@+id/tv3"
23. android:layout_width="wrap_content"
24. android:layout_height="wrap_content"
25. android:layout_alignLeft="@+id/tv2"
26. android:layout_below="@+id/tv2"
27. android:layout_marginTop="72dp"
28. android:text="@string/height"
29. android:textAppearance="?android:attr/textAppearanceMedium" />
30.
31. <RadioGroup
32. android:id="@+id/rg"
33. android:layout_width="wrap_content"
34. android:layout_height="wrap_content"
35. android:layout_above="@+id/tv3"
36. android:layout_alignBottom="@+id/tv2"
37. android:layout_alignLeft="@+id/tv1"
38. android:orientation="horizontal" >
39.
40. <RadioButton
41. android:id="@+id/rb1"
42. android:layout_width="wrap_content"
43. android:layout_height="wrap_content"
44. android:text="@string/male" />
45.
46. <RadioButton
47. android:id="@+id/rb2"
48. android:layout_width="wrap_content"
49. android:layout_height="wrap_content"
50. android:text="@string/female" />
51. </RadioGroup>
52.
53. <Button
54. android:id="@+id/btn1"
55. android:layout_width="wrap_content"
56. android:layout_height="wrap_content"
57. android:layout_below="@+id/et1"
58. android:layout_centerHorizontal="true"
59. android:layout_marginTop="85dp"
60. android:text="@string/calculate" />
61.
62. <TextView
63. android:id="@+id/tv2"
64. android:layout_width="wrap_content"
65. android:layout_height="wrap_content"
66. android:layout_alignParentLeft="true"
67. android:layout_below="@+id/tv1"
68. android:layout_marginTop="38dp"
69. android:text="@string/sex"
70. android:textAppearance="?android:attr/textAppearanceMedium" />
71.
72. <EditText
73. android:id="@+id/et1"
74. android:layout_width="wrap_content"
75. android:layout_height="wrap_content"
76. android:layout_alignBottom="@+id/tv3"
77. android:layout_alignLeft="@+id/rg"
78. android:layout_alignParentRight="true"
79. android:ems="10"
80. android:hint="@string/input"
81. android:inputType="numberDecimal" >
82.
83. <requestFocus />
84. </EditText>
85.
86.</RelativeLayout>
activity_calculator.xml:
[html] view plain copy
01.<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
02. xmlns:tools="http://schemas.android.com/tools"
03. android:layout_width="match_parent"
04. android:layout_height="match_parent"
05. android:paddingBottom="@dimen/activity_vertical_margin"
06. android:paddingLeft="@dimen/activity_horizontal_margin"
07. android:paddingRight="@dimen/activity_horizontal_margin"
08. android:paddingTop="@dimen/activity_vertical_margin"
09. tools:context="com.test.weightcalculator.CalculatorActivity" >
10.
11. <TextView
12. android:id="@+id/tvSec"
13. android:layout_width="wrap_content"
14. android:layout_height="wrap_content"
15. android:layout_centerHorizontal="true"
16. android:layout_centerVertical="true"
17. android:textAppearance="?android:attr/textAppearanceMedium" />
18.
19.</RelativeLayout>
四.实验结果图
五.遇到的问题。
性别选择只能选择一项。