一.两个页面的xml文件

factivity

    

sactivity

    

二.在manifest中注册Activity,为首先启动的activity提供标注

                             //首先启动的activity的标注                                                                             android:name=".Sactivity"            android:label="@string/app_name" >                

三.第一个种跳转:无返回结果的跳转
Factivity文件编写

        private Button bt1;    @Override    protected void onCreate(Bundle savedInstanceState) {        // TODO Auto-generated method stub        super.onCreate(savedInstanceState);        setContentView(R.layout.factivity);        bt1 = (Button) findViewById(R.id.button1);        bt1.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View arg0) {                // TODO Auto-generated method stub                Intent intent = new Intent(Factivity.this, Sactivity.class);                startActivity(intent);            }

此时在模拟器中测试,点击“直接跳转”可以转致另一个页面

四.第二个种跳转:含有返回结果的跳转
Factivity文件编写

    private Button bt2;    private TextView tv;    @Override    protected void onCreate(Bundle savedInstanceState) {        // TODO Auto-generated method stub        super.onCreate(savedInstanceState);        setContentView(R.layout.factivity);        bt2 = (Button) findViewById(R.id.button2);        tv= (TextView) findViewById(R.id.textView1);        bt2.setOnClickListener(new OnClickListener() {                  @Override            public void onClick(View v) {                // TODO Auto-generated method stub                Intent intent = new Intent(Factivity.this, Sactivity.class);                startActivityForResult(intent, 1);                      }        });    }        @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        // TODO Auto-generated method stub        super.onActivityResult(requestCode, resultCode, data);        if(requestCode==1&&resultCode==2){            String content = data.getStringExtra("data");            tv.setText(content);                }    }

Sactivity文件编写

    private Button bt;    @Override    protected void onCreate(Bundle savedInstanceState) {        // TODO Auto-generated method stub        super.onCreate(savedInstanceState);        setContentView(R.layout.sactivity);        bt= (Button) findViewById(R.id.button);        bt.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                // TODO Auto-generated method stub                Intent data= new Intent();                data.putExtra("data","hello");                setResult(2,data);                finish();            }        });    }

此时点击“跳转至改变textview”可跳转至另一页面,点击另一页面的按钮返回原页面,可见textview已经被修改为“hello”

五.代码的具体理解

Intent intent = new Intent(Factivity.this, Sactivity.class);
startActivity(intent);

可以认为intent是startActivity的一个指引,表达从什么地方(Factivity.this)到什么地方(Sactivity.class)

Intent intent = new Intent(Factivity.this, Sactivity.class);
startActivityForResult(intent, 1);

startActivityForResult中的intent同理,“1”代表了从Factivity到Sactivity的申请代号

Intent data= new Intent();
data.putExtra("data","hello");
setResult(2,data);
finish();

intent不再代表跳转,而是作为信使携带返回参数的代号“data”和具体参数“hello”
setResult()方法中的2是从Sactivity到Factivity的结果代号

if(requestCode==1&&resultCode==2){
String content = data.getStringExtra("data");
tv.setText(content);}

在验证申请代号结果代号之后,初始化一个String通过intent的getStringExtra方法用返回参数的代号“data”得到返回的具体参数

更多相关文章

  1. 如何添加Android返回键的退出功能
  2. android menu菜单
  3. Android(安卓)Camera 模块分析(三)
  4. ListView.setOnItemClickListener 点击无效
  5. 关于android的Menu理解
  6. android 获取sim卡运营商信息
  7. Android之自定义ContentProvider详解
  8. mybatisplus的坑 insert标签insert into select无参数问题的解决
  9. Python技巧匿名函数、回调函数和高阶函数

随机推荐

  1. android中客服端和服务器端的链接
  2. Android中的界面布局之帧布局,相对布局
  3. Android 动画效果 --Animation 动画专题
  4. Android NDK 是什么
  5. android重启流程
  6. [置顶] [Android基础]Android中Handler的用
  7. Android执行 shell command
  8. Android resource linking failed. error
  9. Android系统升级流程
  10. Android 调用系统相机 失败