Android中Activity跳转 startActivity和startActivityForResult之间的区别
来源:互联网 发布:淘宝查重会泄露论文吗 编辑:程序博客网 时间:2024/05/16 07:05
startActivity(intent):只是从当前活动界面跳转到另外一个界面,两个界面中不再有联系。
startActiivityForResult(requestcode,intnet):可以经当前活动界面认为是一个父窗体,要跳转的界面为子窗体,当子窗体关闭时,父窗体会执行onActivityResult()方法,并可以获取子窗体的返回值.
详细代码:
package irdc.ex03_11; /* import相关class */import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.RadioButton;public class EX03_11 extends Activity{ private EditText et; private RadioButton rb1; private RadioButton rb2; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /* 加载main.xml Layout */ setContentView(R.layout.main); /* * 以findViewById()取得Button对象,并加入onClickListener */ Button b1 = (Button) findViewById(R.id.button1); b1.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { /* 取得输入的身高 */ et = (EditText) findViewById(R.id.height); double height = Double.parseDouble(et.getText().toString()); /* 取得选择的性别 */ String sex = ""; rb1 = (RadioButton) findViewById(R.id.sex1); rb2 = (RadioButton) findViewById(R.id.sex2); if (rb1.isChecked()) { sex = "M"; } else { sex = "F"; } /* new一个Intent对象,并指定class */ Intent intent = new Intent(); intent.setClass(EX03_11.this, EX03_11_1.class); /* * new一个Bundle对象,并将要传递的数据传入 */ Bundle bundle = new Bundle(); bundle.putDouble("height", height); bundle.putString("sex", sex); /* * 将Bundle对象assign给Intent */ intent.putExtras(bundle); /* * 调用Activity EX03_11_1 */ startActivityForResult(intent, 0); } }); } /* * 重写 onActivityResult() * 当SubActivity界面关闭时,执行该方法 */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (resultCode) { case RESULT_OK: /* 取得数据,并显示于画面上 */ Bundle bunde = data.getExtras(); String sex = bunde.getString("sex"); double height = bunde.getDouble("height"); et.setText("" + height); if (sex.equals("M")) { rb1.setChecked(true); } else { rb2.setChecked(true); } break; default: break; } }}
main.xml
<?xml version="1.0" encoding="utf-8"?><AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/widget0" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/title" android:layout_width="260dp" android:layout_height="56dp" android:layout_x="36px" android:layout_y="32px" android:text="@string/title" android:textSize="24sp" /> <TextView android:id="@+id/text1" android:layout_width="wrap_content" android:layout_height="37px" android:layout_x="18dp" android:layout_y="201dp" android:text="@string/text1" android:textSize="18sp" /> <EditText android:id="@+id/height" android:layout_width="130px" android:layout_height="wrap_content" android:layout_x="81dp" android:layout_y="188dp" android:ems="10" android:numeric="decimal" android:textSize="18sp" > <requestFocus /> </EditText> <TextView android:id="@+id/text2" android:layout_width="wrap_content" android:layout_height="29px" android:layout_x="12dp" android:layout_y="110dp" android:text="@string/text2" android:textSize="18sp" /> <TextView android:id="@+id/text3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_x="188dp" android:layout_y="203dp" android:text="cm" android:textSize="18sp" /> <RadioGroup android:id="@+id/sex" android:layout_width="300px" android:layout_height="100px" android:layout_x="80dp" android:layout_y="97dp" android:checkedButton="@+id/sex1" android:orientation="horizontal" > <RadioButton android:id="@+id/sex1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="男的" /> <RadioButton android:id="@+id/sex2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="女的" /> </RadioGroup> <Button android:id="@+id/button1" android:layout_width="104dp" android:layout_height="wrap_content" android:layout_x="78dp" android:layout_y="264dp" android:text="計算" /></AbsoluteLayout>
父Activity跳转到子Activity
详细代码:
package irdc.ex03_11; /* import相关class */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.widget.Button;import android.widget.TextView;public class EX03_11_1 extends Activity{ Bundle bunde; Intent intent; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /* 载入mylayout.xml Layout */ setContentView(R.layout.myalyout); /* 取得Intent中的Bundle对象 */ intent = this.getIntent(); bunde = intent.getExtras(); /* 取得Bundle对象中的数据 */ String sex = bunde.getString("sex"); double height = bunde.getDouble("height"); /* 判断性别 */ String sexText = ""; if (sex.equals("M")) { sexText = "男性"; } else { sexText = "女性"; } /* 取得标准体重 */ String weight = this.getWeight(sex, height); /* 设定输出文字 */ TextView tv1 = (TextView) findViewById(R.id.text1); tv1.setText("你是一位" + sexText + "\n你的身高是" + height + "公分\n你的标准体重是" + weight + "公斤"); /* 以findViewById()取得Button对象,并加入onClickListener */ Button b1 = (Button) findViewById(R.id.button1); b1.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { /* 回传result回上一个activity */ EX03_11_1.this.setResult(RESULT_OK, intent); /* 关闭activity */ EX03_11_1.this.finish(); } }); } /* * 四舍五入的method */ private String format(double num) { NumberFormat formatter = new DecimalFormat("0.00"); String s = formatter.format(num); return s; } /* * 以findViewById()取得Button对象,并加入onClickListener */ 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; }}
subLayout.xml
<?xml version="1.0" encoding="utf-8"?><AbsoluteLayout android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <TextView android:id="@+id/text1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20sp" android:layout_x="50px" android:layout_y="72px" /> <Button android:id="@+id/button1" android:layout_width="131dp" android:layout_height="wrap_content" android:layout_x="71dp" android:layout_y="134dp" android:text="回上一頁"/></AbsoluteLayout>
0 0
- Android中Activity跳转 startActivity和startActivityForResult之间的区别
- Activity跳转,startActivity和startActivityForResult之间的区别
- android activity之间跳转 setResult 和 StartActivityForResult
- Activity间的跳转,startActivity与startActivityForResult
- startActivityForResult 和startActivity的区别
- android中的Activity的开启StartActivity()和StartActivityForResult()
- Android 中startActivity 与startActivityForResult区别
- startActivity()和startActivityForResult()区别
- Android的startActivity个startActivityForResult区别
- android中startActivityForResult( )与startActivity( )的不同之处
- startActivityForResult与startActivity的区别
- startActivityForResult与startActivity的区别
- startActivity( ) 与startActivityForResult( )的区别
- startActivity( ) 与startActivityForResult( )的区别
- startActivity与startActivityForResult的区别
- startActivityForResult与startActivity的区别
- startActivity( ) 与startActivityForResult( )的区别
- Android之startActivity()和startActivityForResult()
- Android开发多线程断点续传下载器
- Android Repo的manifest XML文件格式
- Android App“记住密码”功能的实现逻辑
- Linux踢出其他正在SSH登陆用户
- 数据脱敏
- Android中Activity跳转 startActivity和startActivityForResult之间的区别
- android 代码实现密码输入框
- spring maven mvc
- ios打开超链接的方法
- 关于Oracle数据库优化的几点总结
- js获取键盘事件
- jsp中折叠式标签的代码实现
- STM32F4学习(四)——Usart+DMA
- 如何使用 Pylint 来规范 Python 代码风格