android 开发之activity之间传递数据
16lz
2022-04-29
在android中,我们经常会从一个activity将数据传递到另外的一个activity中,而且还要从另外的activity中获取返回的数据,
其实在android中有很多方法可以做到,比如使用Application或者是Bundle来进行数据传递.今天就看看使用Bundle来进
行数据传递的例子.
这个例子里面使用了Bundle从第一个activity传递了数据到第二个里面,而第二个处理完之后,又将数据返回给了第一个.
具体实现请看代码
---------------------ActivityBundle.java------------------------
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;public class ActivityBundle extends Activity{private RadioButton rbMan;private RadioButton rbWoman;private EditText editHight;private Button btnOK;private double body_height;@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data){switch (resultCode){//结果返回case RESULT_OK://获取Bundle的数据Bundle bl= data.getExtras();String sex=bl.getString("sex");if (sex.equals("M")){rbMan.setChecked(true);}else{rbWoman.setChecked(true);}body_height=bl.getDouble("height");editHight.setText(""+body_height);break;default:break;}}@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);btnOK = (Button) findViewById(R.id.btn_calc);rbMan = (RadioButton) findViewById(R.id.radio_man);rbWoman = (RadioButton) findViewById(R.id.radio_woman);editHight = (EditText) findViewById(R.id.text_edit);btnOK.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){try{body_height = Double.parseDouble(editHight.getText().toString());}catch (Exception e){body_height = 0;}String sex = "";if (rbMan.isChecked()){sex = "M";}else{sex = "F";}//通过intent跳转到下一个页面.Intent intent = new Intent();intent.setClass(ActivityBundle.this, ResultActivity.class);//通过Bundle来获取数据,通过key-Value的方式放入数据Bundle bl = new Bundle();bl.putDouble("height", body_height);bl.putString("sex", sex);//将Bundle放入Intent传入下一个Activityintent.putExtras(bl);//跳到下一个Activity,并且等待其返回结果startActivityForResult(intent, 0);//不能够在这个Activity调用了startActivityForResult之后调用finsh()//否则无法接收到返回}});}}
-----------------------ResultActivity.java----------------------
import java.text.DecimalFormat;import java.text.NumberFormat;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.TextView;public class ResultActivity extends Activity{Bundle bl;Intent intent;Button btn;@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.result);//获取到上一个页面传过来的Intentintent=this.getIntent();//获取Intent中的Bundle数据bl=intent.getExtras();String sex=bl.getString("sex");double height=bl.getDouble("height");String sexText="";if (sex.equals("M")){sexText="男性";}else{sexText="女性";}String weight=getWeight(sex,height);TextView tv1=(TextView)findViewById(R.id.TextView01);tv1.setText("你是一位"+sexText);TextView tv2=(TextView)findViewById(R.id.TextView02);tv2.setText("你的身高是"+height+"厘米");TextView tv3=(TextView)findViewById(R.id.TextView03);tv3.setText("你的标准体重是"+weight+"公斤");btn=(Button)findViewById(R.id.btn_back);btn.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View arg0){//将intent传会上一个ActivityResultActivity.this.setResult(RESULT_OK, intent);ResultActivity.this.finish();}});}private String format(double num){NumberFormat nf =new DecimalFormat("0.00");String s=nf.format(num);return s;}private String getWeight(String sex,double height){String weight="";if (sex.equals("M")){weight=format((height-80)*0.7);}else{weight=format((height-70)*0.6);}return weight;}}---------------mann.xml-----------------
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingBottom="4dip" android:paddingLeft="12dip" android:paddingTop="4dip" android:paddingRight="12dip" ><TextView android:id="@+id/title_view" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /><TextViewandroid:id="@+id/text_title"android:layout_width="fill_parent"android:layout_height="wrap_content"android:textSize="20sp"android:layout_below="@+id/title_view"android:text="@string/str_text"/><TextViewandroid:id="@+id/text_weight"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="20sp"android:layout_below="@+id/text_title"android:text="@string/str_weight"/><RadioGroup android:id="@+id/RadioGroup01" android:layout_width="wrap_content" android:layout_below="@+id/text_title"android:layout_toRightOf="@+id/text_weight" android:orientation="horizontal"android:checkedButton="@+id/radio_man"android:layout_height="wrap_content"><RadioButtonandroid:id="@+id/radio_man"android:text="@string/str_man"/><RadioButtonandroid:id="@+id/radio_woman"android:text="@string/str_woman"/></RadioGroup><TextViewandroid:id="@+id/text_height"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="20sp"android:layout_below="@+id/RadioGroup01"android:text="@string/str_height"/><EditTextandroid:id="@+id/text_edit"android:layout_width="200dip"android:layout_height="wrap_content"android:layout_below="@+id/RadioGroup01"android:layout_toRightOf="@+id/text_height"android:numeric="decimal"/><Button android:layout_width="wrap_content" android:text="@string/str_calc" android:layout_below="@+id/text_edit" android:id="@+id/btn_calc" android:layout_toRightOf="@+id/text_height" android:layout_height="wrap_content"></Button><TextViewandroid:id="@+id/text_cm"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@+id/RadioGroup01"android:textSize="20sp"android:layout_toRightOf="@+id/text_edit"android:text="@string/str_cm"/></RelativeLayout>
----------------result.xml-----------------
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="wrap_content" android:layout_height="wrap_content"><TableLayout android:id="@+id/TableLayout01"android:layout_width="wrap_content" android:layout_height="wrap_content"><TableRow android:id="@+id/TableRow01" android:layout_width="wrap_content"android:layout_height="wrap_content"><RelativeLayout android:id="@+id/RelativeLayout01"android:paddingLeft="12dip" android:paddingRight="12dip"android:paddingTop="10dip" android:paddingBottom="10dip"android:layout_width="wrap_content" android:layout_height="wrap_content"><TextView android:id="@+id/TextView01"android:layout_width="fill_parent" android:layout_height="wrap_content"android:textSize="20sp"></TextView></RelativeLayout></TableRow><TableRow android:id="@+id/TableRow02" android:layout_width="wrap_content"android:layout_height="wrap_content"><RelativeLayout android:id="@+id/RelativeLayout02"android:paddingLeft="12dip" android:paddingRight="12dip"android:paddingTop="10dip" android:paddingBottom="10dip"android:layout_width="wrap_content" android:layout_height="wrap_content"><TextView android:id="@+id/TextView02"android:layout_width="wrap_content" android:layout_height="wrap_content"android:textSize="20sp"></TextView></RelativeLayout></TableRow><TableRow android:id="@+id/TableRow03" android:layout_width="wrap_content"android:layout_height="wrap_content"><RelativeLayout android:id="@+id/RelativeLayout03"android:paddingLeft="12dip" android:paddingRight="12dip"android:paddingTop="10dip" android:paddingBottom="10dip"android:layout_width="wrap_content" android:layout_height="wrap_content"><TextView android:id="@+id/TextView03"android:layout_width="wrap_content" android:layout_height="wrap_content"android:textSize="20sp"></TextView></RelativeLayout></TableRow><TableRow android:id="@+id/TableRow04" android:layout_width="wrap_content"android:layout_height="wrap_content"><RelativeLayout android:id="@+id/RelativeLayout04"android:paddingLeft="12dip" android:paddingRight="12dip"android:paddingTop="10dip" android:paddingBottom="10dip"android:layout_width="wrap_content" android:layout_height="wrap_content"><TextView android:id="@+id/TextView04"android:layout_width="wrap_content" android:layout_height="wrap_content"android:textSize="20sp"></TextView></RelativeLayout></TableRow><TableRow android:id="@+id/TableRow05" android:layout_width="wrap_content"android:layout_height="wrap_content"><RelativeLayout android:id="@+id/RelativeLayout05"android:paddingLeft="40dip" android:paddingRight="40dip"android:paddingTop="10dip" android:paddingBottom="10dip"android:layout_width="wrap_content" android:layout_height="wrap_content"><Button android:text="@string/back_view" android:id="@+id/btn_back"android:layout_width="wrap_content" android:layout_height="wrap_content"></Button></RelativeLayout></TableRow></TableLayout></LinearLayout>
---------------AndroidManifest.xml----------------
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="activity.bundle" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".ActivityBundle" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="ResultActivity"/> </application></manifest>
更多相关文章
- Android(安卓)使用Thread+Handler实现非UI线程更新UI界面
- Android(安卓)Adapter的那些事
- Android(安卓)之 Handler总结
- android之view获取getWidth()和getHeight()
- android开发中handler的总结
- Android之Adapter用法总结
- android之view获取getWidth()和getHeight()
- mybatisplus的坑 insert标签insert into select无参数问题的解决
- python起点网月票榜字体反爬案例