Activity之间的跳转

来源:互联网 发布:python两个数组相减 编辑:程序博客网 时间:2024/05/17 23:42

在Android中我们经常进行页面跳转,其实跳转就是一个Activity到另一个Activity中!


显式跳转

Intent intent = new Intent(this, InfoActivty.class);
                intent.putExtra("name", "传参!");

使用Intent对象进行传参以及跳转的位置
               startActivity (this,跳转的Activity)


在跳转后的activity通过getIntent()方法拿到传过去的值

Intent intent = this.getIntent();

String text = intent.getStringExtra("name");


传参的形式类似与键值对!


还有另一种方式就是 在当前Activity跳转后的页面销毁后返回数值


Intent intent = new Intent(this, InfoActivty.class);
startActivityForResult(intent, REQUEST_CODE0);

与普通跳转不同的是 这里使用 startActivityForResult()方法进行跳转


跳转到另一个 Activity成功之后在Activity关闭的时候返回值!


//在关闭当前的activity的时候返回参数
//设置参数
                        Intent intent = new Intent();
                        intent.putExtra(START, "今天的天氣真好!");
                        //设置返回参数
                        setResult(“这里进行标记在返回Activiey后会使用此标记”, intent);
                        //关闭
                        finish();


这是你跳转的页面退出时候返回的事件
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
            str = data.getStringExtra(START);
            switch (requestCode) {
                case "上一个页面的标记":
                    Toast.makeText(this, "我是返回的数字", Toast.LENGTH_SHORT).show();
                    Toast.makeText(this, "返回的值" + str, Toast.LENGTH_SHORT).show();
                    break;
            }
        }
    }



隐式跳转


首先什么是隐式跳转呢!

不在代码中指定跳转的位置,直接调用xml中写好的跳转地址进行跳转


还有比较常见的一种情况就是!

假如你手机上有两个音乐播放软件,当你点击一个音频文件的时候系统会提示你使用哪个播放器进行播放!

那么系统怎么知道播放音乐的时候去调用你手机上的音乐播放器呢!

首先播放器都拥有规定的隐式,当你点击音乐文件的时候系统就去调用那些拥有此隐式的应!


上代码!

首先需要在在activity的 AndrodiManifest.xml添加代码

<activity android:name=".infoActivity">    <intent-filter>
//这里定义了一个activity隐式跳转        <action android:name="com.kgc.demo"/><category android:name="android.intent.category.DEFAULT"/>     </intent-filter>
</activity>
在跳转的时候
这里跳转直接调用 name的名称 就从当前页面跳转到 infoActivity中去了!
Intent intent1 = new Intent("com.kgc.demo");intent1.putExtra("test","来走咯!");startActivity(intent1);
这就是在自身的程序中进行跳转
至于调用别的程序以后补充!


1 0
原创粉丝点击