IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android-窗口跳转 -> 正文阅读

[移动开发]Android-窗口跳转

我们通过按钮来实现窗口跳转

首先创建我们的主文件main.java

protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.ly_view);
}

设置布局文件

res\layout\ly_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">

</LinearLayout>

清单文件的注册

        <activity android:name=".AMain" android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>    

显式跳转

在布局文件中设置一个按钮

    <Button
        android:id="@+id/btn_explicit"
        android:layout_width="400px"
        android:layout_height="200px"
        android:text="显式跳转"
        />

新建显式跳转目的页面explicit_check.java

public class explicit_check extends Activity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.ly_explicit_check);
    }
}

绑定布局文件(通过文本框提示显式跳转成功)

<?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="match_parent"
        android:layout_height="match_parent"
        android:text="显式跳转成功!!"/>
</LinearLayout>

清单文件中注册

<activity android:name=".explicit_check" android:exported="true">

在主页面文件中获取按钮,并设置其点击事件

        findViewById(R.id.btn_explicit).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(AMain.this,explicit_check.class));
            }
        });

因为我们知道跳转的初始页面和目的页面,所以这种方式称为显式跳转

显式跳转Intent方法的源码:

    public Intent(Context packageContext, Class<?> cls) {
        throw new RuntimeException("Stub!");
    }

隐式跳转?

同样设置在主页面中设置按钮来实现

    <Button
        android:id="@+id/btn_implicit"
        android:layout_width="400px"
        android:layout_height="200px"
        android:text="隐式跳转"
        />

新建隐式跳转目的页面implicit_check.java(同上)

由于我们不希望主页面知道我们的目的页面,所以我们设置一个Uri路径

这样,其他组件就可以通过该路径来访问本组件

清单文件:

        <activity android:name=".implicit_check" android:exported="true">
            <intent-filter>
                <action android:name="Implicit_Action"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <data android:scheme="mosang"
                    android:host="implicit.check"/>
            </intent-filter>

data标签中的值,可以任意设置,只要在跳转时与路径匹配即可

设置按钮事件

        findViewById(R.id.btn_implicit).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent("Implicit_Action", Uri.parse("mosang://implicit.check")));
            }
//URI protocol:\\host:port\subpath?param=value
        });

Intent对象需要两个参数:

1. action字符串,即我们在清单文件中自定义的action标签

2.Uri路径:

  • protocol:与data标签中设置的scheme值匹配
  • host:与data标签中设置的host值匹配

隐式跳转方法的源码:

    public Intent(String action, Uri uri) {
        throw new RuntimeException("Stub!");
    }

预定义Action

?效果:通过点击按钮来打开系统的通话页面,并把用户输入的号码复制过去

按钮实现:

    <!--获取用户输入数据-->
    <EditText
        android:id="@+id/phone_text"
        android:layout_width="match_parent"
        android:layout_height="200px"
        android:inputType="phone"
        android:maxLength="11"
        android:hint="请输入手机号码"
        />
    <Button
        android:id="@+id/btn_action"
        android:layout_width="400px"
        android:layout_height="200px"
        android:text="预定义action"
        />

实现按钮功能:

//通过findViewById函数获取EditText对象,将其强转为EditText对象即可获取其值
EditText text1=(EditText)findViewById(R.id.phone_text);
        findViewById(R.id.btn_action).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse("tel:"+text1.getText().toString())));
                //通过text1.getText().toString()拿到内容字符串
            }
        });
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-03-30 18:36:39  更:2022-03-30 18:40:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 19:41:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码