Activity之间的数据传输的示例(实现根据身高计算标准体重)
2016-02-09 13:51
417 查看
1.编写一个实现java.io.Serializable接口的Java类,在该类中创建两个变量用于储存数据,并实现它的set和get方法说明:在Bundle传递数据包的时候,可以放入一个可序列化的对象。这样,当要传递的数据字段较多的时候,采用该方法比较方便。在例子中,为了在Bundle中放入一个可以序列化的对象,我们创建了一个可以序列化的Java类,这样方便储存序列化的对象。2.可序列化的Info类
package activty.zhanghang.com.myapplication; import java.io.Serializable; /** * Created by dell-pc on 2016/2/8. */ public class Info implements Serializable { private static final long serialVersionUID = 1L; private String sex = "";//性别 private int stature = 0;//身高 public int getStature() { return stature; } public void setStature(int stature) { this.stature = stature; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } }3.各个文件信息MainActivty
package activty.zhanghang.com.myapplication; import android.annotation.TargetApi; import android.content.Intent; import android.os.Build; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.Toast; public class MainActivity extends AppCompatActivity { private Button btn; private int RequestCode = 1; private EditText editText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn = (Button) findViewById(R.id.curculate); editText = (EditText) findViewById(R.id.edittext); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Info info = new Info(); String heigth = editText.getText().toString(); if("".equals(heigth)){ Toast.makeText(MainActivity.this,"请输入您的身高",Toast.LENGTH_SHORT).show(); return; } int stature = Integer.parseInt(editText.getText().toString()); RadioGroup sex = (RadioGroup) findViewById(R.id.sex); //获取单选按钮的值 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对象 bundle.putSerializable("info", info);//将输入的基本信息保存在Bundle中 Intent intent = new Intent(MainActivity.this,ResultActivity.class); intent.putExtras(bundle); startActivityForResult(intent,RequestCode); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode==RequestCode){ if (resultCode==ResultActivity.ResultCode){ Bundle bundle = data.getExtras(); String result = bundle.getString("result"); Toast.makeText(MainActivity.this,result,Toast.LENGTH_SHORT).show(); } } } }
对应的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:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:orientation="vertical" tools:context="activty.zhanghang.com.myapplication.MainActivity"> <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="请选择您的性别:" android:layout_gravity="center_vertical"/> <RadioGroup android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/sex" android:orientation="horizontal"> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="男"/> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="女"/> </RadioGroup> </LinearLayout> <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="227dp" android:layout_height="wrap_content" android:id="@+id/edittext" /> </LinearLayout> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="计算" android:id="@+id/curculate" android:layout_gravity="center_horizontal"/> </LinearLayout>
ResultActivity.java
package activty.zhanghang.com.myapplication;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.TextView;import java.text.DecimalFormat;import java.text.NumberFormat;/*** Created by dell-pc on 2016/2/8.*/public class ResultActivity extends AppCompatActivity {public static int ResultCode = 1;private Button btn;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.result);TextView sex = (TextView) findViewById(R.id.sex);TextView height = (TextView) findViewById(R.id.height);TextView normal = (TextView) findViewById(R.id.normal);btn = (Button) findViewById(R.id.back);btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent();intent.putExtra("result","谢谢您的使用");setResult(ResultCode, intent);finish();}});Intent intent = getIntent();Bundle bundle = intent.getExtras();Info info = (Info) bundle.getSerializable("info");//获取一个可以序列化的info对象sex.setText("您是一位"+info.getSex()+"士");//通过序列化的info对象获取序列化的值height.setText("您的身高是"+info.getStature()+"厘米");//显示计算后的数据normal.setText("您的标准体重是"+getWeight(info.getSex(),info.getStature())+"公斤");}/*** 计算*/private String getWeight(String sex,float 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;}}
对应的xml布局文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/sex"android:textSize="30dp"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/height"android:textSize="30dp"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/normal"android:textSize="30dp"/><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/back"android:text="返回"/></LinearLayout>
相关文章推荐
- c语言 矩阵下三角之和
- 学习笔记Day4
- 104. Maximum Depth of Binary Tree LeetCode
- 达夫设备(Duff's Device)
- BZOJ 1082 SCOI 2005 栅栏 搜索+剪枝
- DP求解有趣的数问题
- LeetCode题解:Clone Graph
- c语言 字符串是不是回文
- Android使用自定义权限
- HDU 5622 KK's Chemical DP
- 爬虫
- POJ 3320_Jessica's Reading Problem
- POJ 3320_Jessica's Reading Problem
- 百度糯米猴年初一夺冠 协同创新三大法器赢得漂亮
- 学习笔记day3
- 蓝桥杯 算法训练 ALGO-1 区间k大数查询
- c语言 删除字符串
- 重点:机器学习总结之各算法常用包和函数
- CSS之样式相关
- CSS之选择器相关