Intent实现Android间的页面跳转

本文是Android基础教程的一部分,介绍了如何使用Intent实现页面跳转。内容包括显式Intent的使用,展示如何在MainActivity中注册和跳转到OtherActivity,并在OtherActivity中接收数据。此外,还讲解了隐式Intent的应用,如传递数组、执行拨打电话和打开网页等操作,以及AndroidManifest中相关数据scheme的注册。
摘要由CSDN通过智能技术生成

转帖请注明本文出自weimeig的博客(https://blog.csdn.net/weimeig/article/details/79666786),请尊重他人的辛勤劳动成果,谢谢

应朋友们反馈的Android基础薄弱的问题,决定出一套Android基础教程,帮助大家复习,巩固Android基础,今天要讲的是Android中的Intent实现Android间的页面跳转。


增加Acrivity页面时,首先需要在MainActivity中对页面注册,比如


新建被跳转的页面OtherActivity,其对应的xml文件如下

activity_other

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="第二个Activity"/>
</LinearLayout>

Java代码

OtherActivity

import android.support.v7.app.AppCompatActivity;
import android.view.View;

public class OtherActivity extends AppCompatActivity {
    @Override
    public void setContentView(View view) {
        super.setContentView(R.layout.activity_other);

    }
}

程序主界面activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="第一个Activity"/>
    <Button
        android:id="@+id/start_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="页面跳转"/>
</LinearLayout>

Java代码

MainActivity

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;


public class MainActivity extends AppCompatActivity  {

    private Button startButton;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        startButton = findViewById(R.id.start_btn);
        startButton.setOnClickListener(new ButtonListener());
    }
    class ButtonListener implements View.OnClickListener{
        @Override
        public void onClick(View v) {
            //当点击事件触发后执行,启动OtherActivity
            //创建一个Intent对象
            Intent intent =new Intent();
            intent.setClass(MainActivity.this,OtherActivity.class);//从MainActivity跳转到OtherActivity
            startActivity(intent);
        }
    }
}

另外除了上述的显式Intent,还有隐式Intent,隐式Intent可以用来传递数组及动作状态

比如在MainActivity中

            //当点击事件触发后执行,启动OtherActivity
            //创建一个Intent对象
            Intent intent =new Intent();
            intent.setClass(MainActivity.this,OtherActivity.class);//从MainActivity跳转到OtherActivity
            intent.putExtra("姓名","小李");
            startActivity(intent);

在被跳转的OtherActivity中

        Intent intent =getIntent();
        String name = intent.getStringExtra("姓名");

可以接收由MainActivity传来的数据

又或者

Intent intent = new Intent(Intent.ACTION_DIAL);  
                intent.setData(Uri.parse("tel:10086"));  
                startActivity(intent);  

可以调用拨打电话界面并设定预设号码为10086

还可以设置网址的跳转,显示地理位置等

如设置为跳转打开网址时,需要在AndroidManifast中注册一下<data android:scheme="http"/> 

如下:

<activity  android:name=".MainActivity">  
            <intent-filter>  
                <action android:name="android.intent.action.VIEW"/>  
                <category android:name="android.intent.category.DEFAULT"/>  
                <data android:scheme="http"/>  
            </intent-filter>  
              
        </activity>  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值