博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Intent实现页面跳转
阅读量:4573 次
发布时间:2019-06-08

本文共 7334 字,大约阅读时间需要 24 分钟。

一   什么是Intent

Intent可以理解为信使(意图)

由Intent来协助完成Android各个组件之间的通讯

二  Intent实现页面之间跳转

1.startActivity(intent)

2.startActivityForResult(intent,requestCode);

   onActivityResult(int requestCode,int resultCode,Intent data)

   setResult(resultCode,data);

 

1.startActivity(intent)

FaActivity.java 

package com.example.faactivity;import android.app.Activity;import android.content.Context;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 FaActivity extends Activity{    private Button bt1;//    private Context mContext;    private Button bt2;    private TextView tv;    @Override    protected void onCreate(Bundle savedInstanceState)    {        // TODO Auto-generated method stub        super.onCreate(savedInstanceState);        setContentView(R.layout.fa_activity);/* *     通过点击bt1实现页面之间的跳转 *     1.startActivity的方式来实现 *         1>初始化Intent*/        //        mContext=this;        bt1=(Button)findViewById(R.id.button1);//        注册点击事件        bt1.setOnClickListener(new OnClickListener()        {            @Override            public void onClick(View arg0)            {                // TODO Auto-generated method stub                /*                 * 第一个参数:上下文对象                 * 1.FaActivity.this    2.在上面定义一个全局变量                 * private Context mContex;                 * MContext=this;                 * 直接写MContext                 * 第二个参数:目标文件                 *///                Intent intent=new Intent(mContext, SecondAcitivty.class);                Intent intent=new Intent(FaActivity.this, SecondAcitivty.class);                startActivity(intent);            }        });        bt2=(Button)findViewById(R.id.button2);        tv=(TextView)findViewById(R.id.textView1);    }}

SecondAcitivty.java

package com.example.faactivity;import android.app.Activity;import android.os.Bundle;public class SecondAcitivty extends Activity{    @Override    protected void onCreate(Bundle savedInstanceState)    {        // TODO Auto-generated method stub        super.onCreate(savedInstanceState);        setContentView(R.layout.secondactivity);    }}

AndriodMainfest.xml

[
决定首页的出现]

 <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

 </intent-filter>

<iintent-filter>

----------------决定首页的出现

 

Fa_activity.xml

secondactivity.xml

 

 

2.startActivityForResult(intent,requestCode);

   onActivityResult(int requestCode,int resultCode,Intent data)

   setResult(resultCode,data);

FaActivity.java 

package com.example.faactivity;import android.app.Activity;import android.content.Context;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 FaActivity extends Activity{    private Button bt1;//    private Context mContext;    private Button bt2;    private TextView tv;    @Override    protected void onCreate(Bundle savedInstanceState)    {        // TODO Auto-generated method stub        super.onCreate(savedInstanceState);        setContentView(R.layout.fa_activity);/* *     通过点击bt1实现页面之间的跳转 *     1.startActivity的方式来实现 *         1>初始化Intent*/        //        mContext=this;        bt1=(Button)findViewById(R.id.button1);//        注册点击事件        bt1.setOnClickListener(new OnClickListener()        {            @Override            public void onClick(View arg0)            {                // TODO Auto-generated method stub                /*                 * 第一个参数:上下文对象                 * 1.FaActivity.this    2.在上面定义一个全局变量                 * private Context mContex;                 * MContext=this;                 * 直接写MContext                 * 第二个参数:目标文件                 *///                Intent intent=new Intent(mContext, SecondAcitivty.class);                Intent intent=new Intent(FaActivity.this, SecondAcitivty.class);                startActivity(intent);            }        });        /*         * 通过startActivityForresult         */        bt2=(Button)findViewById(R.id.button2);        bt2.setOnClickListener(new OnClickListener()        {                        @Override            public void onClick(View arg0)            {                // TODO Auto-generated method stub                Intent intent=new Intent(FaActivity.this,SecondAcitivty.class);//初始化跳转信号                /*                 * 第一个参数是Intent对象                 * 第二个参数是请求的一个标识                 */                startActivityForResult(intent, 1);//请求跳转方法(跳转信号,请求跳转标识码)            }        });        tv=(TextView)findViewById(R.id.textView1);    }    /*     * 通过    startActivityForresult跳转,接受返回数据的方法     *requestCode:请求的标识     *resultCode:第二个页面返回的标识     *data:第二个页面回传的数据     */    @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 string=data.getStringExtra("data");//创建字符串接收数据 tv.setText(string);//把数据放入文本框 } }}

SecondAcitivty.java

package com.example.faactivity;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;public class SecondAcitivty extends Activity{    private Button bt1;    private String string="你好";    @Override    protected void onCreate(Bundle savedInstanceState)    {        // TODO Auto-generated method stub        super.onCreate(savedInstanceState);        setContentView(R.layout.secondactivity);        /*         * 第二个页面什么时候给第一个页面回传数据         *    回传到第一个页面的实际上是一个Intent对象          */        bt1=(Button)findViewById(R.id.button);        bt1.setOnClickListener(new OnClickListener()        {                        @Override            public void onClick(View arg0)            {                // TODO Auto-generated method stub                Intent dataIntent=new Intent();//初始化跳转信号                dataIntent.putExtra("data", string);//创建回传数据并与跳转信号绑定                setResult(2, dataIntent);//设置跳转命令(回传码,回传数据)                    //结束当前页面                finish();            }        });    }}
Intent dataIntent=new Intent();//初始化跳转信号 dataIntent.putExtra("data", string);//创建回传数据并与跳转信号绑定 setResult(2, dataIntent);//设置跳转命令(回传码,回传数据)  //结束当前页面  finish();
————————回传的页面用到的方法: putExtra(“Intent对象”,回传的内容) setResult(结果码(resultcode),Intent对象)

intent回传数据接收,在请求的activity中接收被请求的activity回传的数据,通过请求标识和结果标识判断是哪个activity回传的数据

 

startActivityForResult方式启动Activity 从Activity1 启动 Activity2

1、重写Activity1中的onActivityResult方法
2、在Activity1中使用startActivityForResult中启动Activity2
3、在Activity2中使用setResult(int resultCode, intent);finish()来返回到上一个Activity,上一个Activity在onActivityResult中进行判断执行

 

 

转载于:https://www.cnblogs.com/crazyzx/articles/5240146.html

你可能感兴趣的文章
HTTP协议分析及攻防方法
查看>>
编程我们学到了什么?
查看>>
面向过程和面向对象的对比(转)
查看>>
206. 反转链表
查看>>
622. 设计循环队列
查看>>
MCMC 、抽样算法与软件实现
查看>>
JavaScipt30(第七个案例)(主要知识点:数组some,every,findIndex方法)
查看>>
Android 采用HttpClient提交数据到服务器
查看>>
EL表达式概述
查看>>
word中批量修改图片大小
查看>>
Ext4 中 日期和时间的控件
查看>>
最长子序列问题
查看>>
python中一些有用的函数------持续更新中
查看>>
第三次作业—张淑华
查看>>
python 实现字符串的切片功能
查看>>
Centos 文件权限修改
查看>>
Linux下NFS服务器的搭建与配置
查看>>
1501 二叉树最大宽度和高度
查看>>
真事儿!——我们官网被全站拷贝了!
查看>>
抽象类及抽象方法
查看>>