欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android实现页面跳转的全过程记录

程序员文章站 2022-03-24 08:04:28
目录1、启动新activty2、启动其他app1、启动新activty1.1、功能分析 app功能 在第一个activity输入消息 点击第一个activit...

1、启动新activty

1.1、功能分析

  • app功能
    • 在第一个activity输入消息
    • 点击第一个activity的发送按钮
    • 发送消息到第二个activity
    • 第二个activity显示收到的消息
  • app结构(2个activity+2个layout) :
    • 打开app时,启动createmessageactivty
      加载activity_create_message.xml作为布局
    • 用户点击按钮启动receivemessageactivty
      加载activity _receive_message.xml作为布局

1.2、开发视图布局

activity_create_message.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.constraintlayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".createmessageactivity">

    <linearlayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <edittext
            android:id="@+id/input"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:hint="@string/hint"
            android:inputtype="textpersonname"
            android:textsize="30sp"/>

        <button
            android:id="@+id/button"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:onclick="onsendmessage"
            android:text="@string/send"
            android:textsize="30sp"
            />

    </linearlayout>
</androidx.constraintlayout.widget.constraintlayout>

activity _receive_message.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.constraintlayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_constraintright_torightof="parent"
    tools:context=".receivemessageactivity">

    <textview
        android:id="@+id/output"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="2nd activity"
        android:textsize="34sp"
        app:layout_constraintleft_toleftof="parent"
        app:layout_constraintright_torightof="parent"
        app:layout_constrainttop_totopof="parent" />
</androidx.constr

string.xml

<resources>
    <string name="app_name">messager</string>
    <string name="send">send message</string>
    <string name="hint">enter a message</string>
    <string name="choser">send message via ...</string>
</resources>

1.3、按钮事件响应

createmessageactivty类:发送消息

public class createmessageactivity extends appcompatactivity {

    //定义常量,作为消息的key
    public static final string message_key="szst.it.ping.messager";

    @override
    protected void oncreate(bundle savedinstancestate) {
        super.oncreate(savedinstancestate);
        setcontentview(r.layout.activity_create_message);
    }

    public void onsendmessage(view button){
        //获得编辑框引用
        edittext edittext = findviewbyid(r.id.input);
        //取出编辑框文字
        string message = edittext.gettext().tostring();

        //intent是android中的信使,新建intent打开,设置收件activity为receivemessageactivity
        intent intent = new intent(this,receivemessageactivity.class) ;
        //在intent中附加消息
        intent.putextra(message_key,message);
        //向android发出请求
        startactivity(intent);

    }
}

receivemessageactivty类:接收消息

public class receivemessageactivity extends appcompatactivity {

    @override
    protected void oncreate(bundle savedinstancestate) {
        super.oncreate(savedinstancestate);
        setcontentview(r.layout.activity_receive_message);

        //获得intent的引用
        intent intent = getintent();

        //根据key取出value
        string message = intent.getstringextra(createmessageactivity.message_key);

        //获得文本框内容,设置文字
        textview textview = findviewbyid(r.id.output);
        textview.settext(message);
    }
}

1.4、测试结果

启动界面

Android实现页面跳转的全过程记录

输入消息“123”并点击按钮发送,接收界面如下

Android实现页面跳转的全过程记录 

2、启动其他app

2.1、功能分析

  • app功能
    • 在第一个activity输入消息
    • 点击第一个activity的发送按钮
    • 发送消息到其他app
    • 其他app显示收到的消息
  • app结构(1个activity+1个layout) :
    • 打开app时,启动createmessageactivty
      加载activity_create_message.xml作为布局
    • 用户点击按钮启动选择启动满足条件的app

2.2、开发视图布局

  • activity_create_message.xml
    • 同1.2中的activity_create_message.xml

2.3、按钮事件响应

createmessageactivty类:发送消息

public class createmessageactivity extends appcompatactivity {

    @override
    protected void oncreate(bundle savedinstancestate) {
        super.oncreate(savedinstancestate);
        setcontentview(r.layout.activity_create_message);
    }

    public void onsendmessage(view button){
        //获得编辑框引用
        edittext edittext = findviewbyid(r.id.input);
        //取出编辑框文字
        string message = edittext.gettext().tostring();

        //使用new intent(intent.action_send)替换new intent(this, receivemessageactivity.class),不知道其它app中的类名
        intent intent = new intent(intent.action_send);
        //设置消息类型为纯文本,系统不会对消息进行处理
        intent.settype("text/plain");
        //向intent添加附加信息
        intent.putextra(intent.extra_text,message);

        //自定义选择对话框
        string choosertitle = getstring(r.string.choser);
        intent chosenintent = intent.createchooser(intent, choosertitle);

        startactivity(chosenintent) ;
    }
}

2.4、测试结果

启动界面同1.4

输入消息“123”并点击按钮发送,选择要发送的app(messaging)

Android实现页面跳转的全过程记录

发送附加消息到111

Android实现页面跳转的全过程记录

发送成功

Android实现页面跳转的全过程记录

总结

到此这篇关于android实现页面跳的文章就介绍到这了,更多相关android实现页面跳转内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!