实验2 Activity 和Intent
1. 实验目的
1. 掌握如何创建一个Activity
2. 掌握如何在Activity中添加控件并进行事件处理
3. 掌握如何通过Intent启动另外一个Activity
4. 掌握如何通过Intent在多个Activity之间传递数据
5. 掌握Activity的生命周期
2. 实验仪器
装有Android开发环境的计算机
任务2:标准体重计算器
如果是男性,标准体重=(身高-80)*0.7
如果是女性,标准体重=(身高-70)*0.6
1. 运行效果图


2. 训练目标
1) 掌握RadioButton组件的使用
2) Intent的使用
3) 掌握如何在不同Activity之间通过Bundle传递数据
3.核心代码
①MainActivity
[java] view plain copy
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn=(Button) findViewById(R.id.btn);
etName=(EditText) findViewById(R.id.etName);
gro=(RadioGroup) findViewById(R.id.radioGroup1);
gro.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup arg0, int data) {
switch (data) {
case R.id.rbmale:
Sex="男性";
break;
case R.id.rbfemale:
Sex="女性";
default:
break;
}
}
});
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
String High=etName.getText().toString();
Intent intent=new Intent();
intent.setClass(getApplicationContext(), ShowActivity.class);
Bundle bundle=new Bundle();
bundle.putString("High", High);
bundle.putString("Sex", Sex);
intent.putExtras(bundle);
startActivity(intent);
}
});
}
②ShowActivity
[java] view plain copy
<pre name="code" class="java">public class ShowActivity extends Activity {
private double Weight;
private TextView tvShow;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show);
tvShow=(TextView) findViewById(R.id.tvShow);
Intent intent =getIntent();
Bundle bundle=getIntent().getExtras();
String Sex=bundle.getString("Sex");
String High=bundle.getString("High");
if(Sex.equals("男性"))
{
Weight=((Integer.parseInt(High))-80)*0.7;
}
else
{
Weight=((Integer.parseInt(High))-70)*0.6:
}
tvShow.setText("您是一名"+Sex+"\n身高为:"+High+"cm\n标准体重为:"+Weight+"千克");
4.问题与反思
[java] view plain copy
gro=(RadioGroup) findViewById(R.id.radioGroup1);
gro.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">}</span>
1. 实验目的
1. 掌握如何创建一个Activity
2. 掌握如何在Activity中添加控件并进行事件处理
3. 掌握如何通过Intent启动另外一个Activity
4. 掌握如何通过Intent在多个Activity之间传递数据
5. 掌握Activity的生命周期
2. 实验仪器
装有Android开发环境的计算机
任务2:标准体重计算器
如果是男性,标准体重=(身高-80)*0.7
如果是女性,标准体重=(身高-70)*0.6
1. 运行效果图
2. 训练目标
1) 掌握RadioButton组件的使用
2) Intent的使用
3) 掌握如何在不同Activity之间通过Bundle传递数据
3.核心代码
①MainActivity
[java] view plain copy
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn=(Button) findViewById(R.id.btn);
etName=(EditText) findViewById(R.id.etName);
gro=(RadioGroup) findViewById(R.id.radioGroup1);
gro.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup arg0, int data) {
switch (data) {
case R.id.rbmale:
Sex="男性";
break;
case R.id.rbfemale:
Sex="女性";
default:
break;
}
}
});
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
String High=etName.getText().toString();
Intent intent=new Intent();
intent.setClass(getApplicationContext(), ShowActivity.class);
Bundle bundle=new Bundle();
bundle.putString("High", High);
bundle.putString("Sex", Sex);
intent.putExtras(bundle);
startActivity(intent);
}
});
}
②ShowActivity
[java] view plain copy
<pre name="code" class="java">public class ShowActivity extends Activity {
private double Weight;
private TextView tvShow;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show);
tvShow=(TextView) findViewById(R.id.tvShow);
Intent intent =getIntent();
Bundle bundle=getIntent().getExtras();
String Sex=bundle.getString("Sex");
String High=bundle.getString("High");
if(Sex.equals("男性"))
{
Weight=((Integer.parseInt(High))-80)*0.7;
}
else
{
Weight=((Integer.parseInt(High))-70)*0.6:
}
tvShow.setText("您是一名"+Sex+"\n身高为:"+High+"cm\n标准体重为:"+Weight+"千克");
4.问题与反思
[java] view plain copy
gro=(RadioGroup) findViewById(R.id.radioGroup1);
gro.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">}</span>