Android中使用Intent实现界面跳转

Intent 信使、意图

由Intent来协助Android各个组件之间跳转

1、

startActivity(intent)

包下新建一个类,FActivity.class

public class FActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.factivity);
    }
}

新建一个XML文件factivity.xml

<Button
    android:id="@+id/bt1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="First"/>
<Button
    android:id="@+id/bt2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Second"/>
<TextView
    android:id="@+id/text1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"
    android:layout_gravity="center"
    />

同样在创建第二对class和xml。

在AndroidManiFest中注册两个新类,并将默认启动类放在最前:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.bcp.layouttest">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".FActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

        <activity android:name=".SActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

添加按钮事件:

public class FActivity extends AppCompatActivity {
    private Button bt_first;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.factivity);
        /***
         * 点击第一个按钮实现跳转页面
         */

        bt_first= (Button) findViewById(R.id.bt1);
        bt_first.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                
                Intent intent=new Intent();
                //第一个:上下文对象
                //第二个:目标文件
                intent.setClass (FActivity.this,SActivity.class);
                startActivity(intent);
            }
        });
    }
}

2、

startActivityForResult(intent,requestCode);

onActivityResult(int requestCode,int resultCode,Intent data)

setResult(resultCode,data);

查看代码:

FActivity.java

public class FActivity extends AppCompatActivity {
    private Button bt_first;
    private Button bt_second;
    private TextView tv;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.factivity);
        /***
         * 点击第一个按钮实现跳转页面
         */

        bt_first= (Button) findViewById(R.id.bt1);
        bt_first.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent=new Intent();
                intent.setClass (FActivity.this,SActivity.class);
                startActivity(intent);
            }
        });

        /***
         * 通过startActivityForresult实现
         */
        bt_second= (Button) findViewById(R.id.bt2);
        bt_second.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent=new Intent().setClass(FActivity.this,SActivity.class);
                /***
                 * 第二个参数是请求的标示
                 */

                startActivityForResult(intent,1);
            }
        });

        tv= (TextView) findViewById(R.id.text1);
    }

    /***
     * 通过startActivityForresult实现,接收返回数据的方法
     * 一、请求的标示
     * 二、第二个页面返回的标示
     * 三、第二个页面传回的数据
     */
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        //判断是否满足条件来进行回传数据
        if(requestCode==1&&resultCode==2){
            String content=data.getStringExtra("intent");
            tv.setText(content);
        }
    }
}

SActivity.java

public class SActivity extends AppCompatActivity{
    private Button bt;
    private String content="Hello~!";
    @Override
    protected void onCreate( Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.sactivity);

        /***
         * 第二个页面给第一个页面回传数据
         * 回传给第一个页面的实际上是一个intent对象
         */
        bt= (Button) findViewById(R.id.bt3);
        bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent=new Intent();
                //创建回传对象
                intent.putExtra("intent",content);
                setResult(2,intent);

                //结束当前页面
                finish();
            }
        });

    }
}

App的签名和打包:

1、为了保证每个应用开发者的合法。

2、防止别人通过相同的Package Name来混淆替换已经安装的程序,从而出现一些恶意篡改

3、保证我们每次发布的版本的一致性(如自动更新不会因为版本不一样而无法安装)

时间: 2024-11-07 16:01:33

Android中使用Intent实现界面跳转的相关文章

Android Intent实现界面跳转切换,随时记录一下

好久不用Android,今天突然用到了Intent实现界面跳转. Intent方法:Intent itent = new Intent(); intent.setClass(**Activity1.this,**Activity2.class); **Activity1.this.startActivity(intent); 不要忘记在AndroidManifest.xml中需要注册**Activity2. <activity android:name=".**Activity2"

Android中常见Intent习惯用法-上篇(附源码下载)

Android中的Intent是一个非常重要的类,如果对Intent不是特别了解,可以参见博文<Android中Intent概述及使用>.如果对Intent Filter不是特别了解,可以参见博文<Android中Intent对象与Intent Filter过滤匹配过程详解>. 本文着重讲一下Android中一些常见的Intent的习惯用法,比如如何通过Intent发送短信.发送邮件.启动摄像机拍照录视频.设置闹铃.打开WIFI设置界面等等. 限于篇幅,本博文分为上下两篇,这是上篇

一个Xamarin.Android中与intent有关的&quot;动人&quot;爱情故事

一个Xamarin.Android中与intent有关的"动人"爱情故事 第一步,写项目中的第一个界面. <?xml version="1.0" encoding =" utf-8" ?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation= "vertical &q

Android中的Intent在两个页面传值问题

Android中的Intent在两个页面见传值主要有两种,一种是在两个Activity之间传值,另一种是在一个普通页面和一个Activity之间传递数据. 1. Intent在两个Activity之间传值 首先定义两个Activity   FirstActivity和SecondActivity 在FirstActivity的onCreate()方法中的代码 Intent intent = new Intent(); String str = "要传递的数据"; intent.putE

android中使用intent来实现Activity带数据跳转

大家都知道startActivity()是用来切换跳转Activity的.如果想要在另个Activity中出书数据的话.只需要在源activity中使用intent.putExtra()方法传出数据.在对应activity中使用intent.get**Extra()方法接收数据就行了 那么startActivityForResult()方法呢.它也是用来带数据跳转activity的.可是这两个方法具体有什么区别呢? 这就要说说带数据跳转的方向了. 第一个方法只能把数据发送过去.可是如果子acti

Android中实现activity的页面跳转并传值

一个Android应用程序很少会只有一个Activity对象,如何在多个Activity之间进行跳转,而且能够互相传值是一个很基本的要求. 本次我们就讲一下,Android中页面跳转以及传值的几种方式! Activity跳转与传值,主要是通过Intent类来连接多个Activity. 1. Intent显式意图 (1) 最常见最一般的页面跳转代码,很简单,如下: Intent intent = new Intent(A.this, SecondActivity.class); startActi

Android中的Intent详解

前言: 每个应用程序都有若干个Activity组成,每一个Activity都是一个应用程序与用户进行交互的窗口,呈现不同的交互界面.因为每一个Acticity的任务不一样,所以经常互在各个Activity之间进行跳转,在Android中这个动作是靠Intent来完成的.你通过startActivity()方法发送一个Intent给系统,系统会根据这个Intent帮助你找到对应的Activity,即使这个Activity在其他的应用中,也可以用这种方法启动它. Intent的定义: Intent是

Android中的Intent(意图)的使用

概述: Intent(意图)主要是解决Android应用的各项组件之间的通讯.Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用.因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦. 分类: 隐式意图 不用指定要打开的activity, 通过动作和数据的组合去查找系统中, 能处理指定动作和数据的界面,因此

Android中的intent属性

android之Intent的七大属性 2015年04月03日 ⁄ Android ⁄ 共 14866字 ⁄ 字号 小 中 大 ⁄ 1条评论 Intent用于封装程序的“调用意图”.两个Activity之间,可以把需要交换的数据,封装成Bundle对象,然后使用Intent对象,携带数据到另一个Activity中.实现两个Activity的数据交换. Intent还是各种应用程序组件之间通信的重要媒介.启动Activity.Service.BroadcastReceiver,都需要使用Inten