Android intent的一些小使用

news2024/11/15 18:57:02

目录:

  • 1. Test5.java
  • 2. activity_main5.xml
  • 3. Empty.java (这个是用来带参数打开Activity按钮用的)
  • 4. activity_empty.xml
  • 5. 总结

一些基本的问题就不进行说明了,直接上代码!!!

// 最后的隐形intent和带返回值没有解决!!!

1. Test5.java

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.content.ComponentName;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class Test5 extends AppCompatActivity {

    Button Call, Browser, Note, Set, Photo, JumpDesket, XianNo, GetReturn, GetNumber, Yin;//设置一些按钮名称

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test5);
        // 对按钮进行赋予功能
        Call = findViewById(R.id.buttonCall);
        Note = findViewById(R.id.buttonNote);
        Browser = findViewById(R.id.buttonBrowser);
        Set = findViewById(R.id.buttonSet);
        Photo = findViewById(R.id.buttonPhotograph);
        JumpDesket = findViewById(R.id.buttonJumpDesk);
        XianNo = findViewById(R.id.buttonXianNo);
        GetReturn = findViewById(R.id.buttonGetReturn);
        GetNumber = findViewById(R.id.buttonGet);
        Yin = findViewById(R.id.buttonYin);
        // 赋予点击能力
        Call.setOnClickListener(onClickListener);
        Note.setOnClickListener(onClickListener);
        Browser.setOnClickListener(onClickListener);
        Set.setOnClickListener(onClickListener);
        Photo.setOnClickListener(onClickListener);
        JumpDesket.setOnClickListener(onClickListener);
        XianNo.setOnClickListener(onClickListener);
        GetReturn.setOnClickListener(onClickListener);
        GetNumber.setOnClickListener(onClickListener);
        Yin.setOnClickListener(onClickListener);
    }

    // 对按钮进行写方法
    private final View.OnClickListener onClickListener = new View.OnClickListener() {
        @Override
        public void onClick(View view) {//点击事件
            Button button = (Button) view;   //把点击获得的id信息传递给button
            try {
                if (button.getId() == R.id.buttonCall) { // 打电话
                    Intent intent = new Intent();
                    intent.setAction(Intent.ACTION_DIAL); //调用拨号面板
                    intent.setData(Uri.parse("tel:110")); //设置要拨打的号码
                    startActivity(intent);
                } else if (button.getId() == R.id.buttonNote) {  // 发短信
                    Intent intent = new Intent();
                    intent.setAction(Intent.ACTION_SENDTO); //调用发送短信息
                    intent.setData(Uri.parse("smsto:110XXXXXX")); //设置要发送的号码,自己设计就好
                    intent.putExtra("sms_body", "Welcome to Android!"); //设置要发送的信息内容
                    startActivity(intent);
                } else if (button.getId() == R.id.buttonBrowser) { // 浏览器
                    Intent intent = new Intent();
                    // 设置浏览器地址
                    intent.setData(Uri.parse("https://blog.csdn.net/weixin_51395608?type=blog"));
                    // 设置动作
                    intent.setAction(Intent.ACTION_VIEW);
                    startActivity(intent);
                } else if (button.getId() == R.id.buttonSet) { // 设置
                    Intent intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS);
                    startActivity(intent);
                } else if (button.getId() == R.id.buttonPhotograph) {  // 拍照
                    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                    intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
                    startActivity(intent);
                } else if (button.getId() == R.id.buttonJumpDesk) {    // 跳转到桌面
                    Intent intent = new Intent();
                    // 设置action动作属性
                    intent.setAction(Intent.ACTION_MAIN);
                    // 设置categoty种类显示主屏幕
                    intent.addCategory(Intent.CATEGORY_HOME);
                    startActivity(intent);
                } else if (button.getId() == R.id.buttonXianNo) {  // 显性不带参数
                    Intent intent = new Intent(Test5.this, MainActivity.class);
                    startActivity(intent);
                } else if (button.getId() == R.id.buttonYin) { // 隐形  待完成
                    Intent intent = new Intent();
                    // 未完成
                    startActivity(intent);
                } else if (button.getId() == R.id.buttonGet) { // 带参数
                    Intent intent = new Intent(Test5.this, Empty.class);
                    intent.putExtra("data", "我带着一些数据来了!!!");
                    startActivity(intent);
                } else if (button.getId() == R.id.buttonGetReturn) {   // 带返回值 
                // 未完成!!!!
                    Intent intent = new Intent(Test5.this, Empty.class);    //跳转设置
                    Bundle extras = new Bundle();
                    extras.putString("key", "value");
//                    startActivityForResult(intent, 1, extras);          //带返回的跳转  requestCode = 1
                } else {
                    Log.e("orror", "未知按钮组件调用");
                }
            } catch (Exception e) {
                Log.e("No", "main,error");
            }
        }
    };

}

2. activity_main5.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=".Test5">


    <TextView
        android:id="@+id/textView4"
        android:layout_width="276dp"
        android:layout_height="71dp"
        android:text="Intent的使用"
        android:textSize="48sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        tools:layout_editor_absoluteY="17dp" />

    <LinearLayout
        android:id="@+id/linearLayout"
        android:layout_width="282dp"
        android:layout_height="495dp"
        android:orientation="vertical"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.496"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.444">

        <Button
            android:id="@+id/buttonCall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="打电话"
            tools:layout_editor_absoluteX="24dp"
            tools:layout_editor_absoluteY="104dp" />

        <Button
            android:id="@+id/buttonNote"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="发短信"
            tools:layout_editor_absoluteX="24dp"
            tools:layout_editor_absoluteY="152dp" />

        <Button
            android:id="@+id/buttonBrowser"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="打开浏览器"
            tools:layout_editor_absoluteX="25dp"
            tools:layout_editor_absoluteY="200dp" />

        <Button
            android:id="@+id/buttonSet"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="设置"
            tools:layout_editor_absoluteX="24dp"
            tools:layout_editor_absoluteY="248dp" />

        <Button
            android:id="@+id/buttonPhotograph"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="拍照"
            tools:layout_editor_absoluteX="24dp"
            tools:layout_editor_absoluteY="296dp" />

        <Button
            android:id="@+id/buttonJumpDesk"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="转到桌面"
            tools:layout_editor_absoluteX="24dp"
            tools:layout_editor_absoluteY="344dp" />

        <Button
            android:id="@+id/buttonXianNo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="打开另一个Activity(显性,不带参数)"
            tools:layout_editor_absoluteX="24dp"
            tools:layout_editor_absoluteY="394dp" />

        <Button
            android:id="@+id/buttonYin"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="打开另一个Activity(隐性)"
            tools:layout_editor_absoluteX="24dp"
            tools:layout_editor_absoluteY="442dp" />

        <Button
            android:id="@+id/buttonGet"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="带参数打开另一个Activity"
            tools:layout_editor_absoluteX="24dp"
            tools:layout_editor_absoluteY="490dp" />

        <Button
            android:id="@+id/buttonGetReturn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="带返回值打开另一个Activity"
            tools:layout_editor_absoluteX="25dp"
            tools:layout_editor_absoluteY="540dp" />
    </LinearLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

效果(没有专门去设计):
效果

3. Empty.java (这个是用来带参数打开Activity按钮用的)

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

public class Empty extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_empty);
        String currentType = getIntent().getStringExtra("data");
        TextView t = findViewById(R.id.textVE);
        t.setText(currentType);
    }
}

4. activity_empty.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=".Empty">

    <TextView
        android:id="@+id/textVE"
        android:layout_width="243dp"
        android:layout_height="361dp"
        android:background="#FFFFFF"
        android:text="TextView"
        android:textColor="#4A4A4A"
        android:textSize="48sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.283" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="返回值"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textVE"
        app:layout_constraintVertical_bias="0.419" />
</androidx.constraintlayout.widget.ConstraintLayout>

效果:
效果

5. 总结

不是很难!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1140721.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023最新短剧小程序搭建,短剧分销系统功能介绍

#短剧小程序# 基础功能最近新增功能 1.对接流量主变现 2.影视作品观看 3.支持创作者入驻 4.PC独立后台管理 5.壁纸&#xff0c;表情包下载 6.内容管理分类&#xff0c;专题分类 7.可单次付费或月会员 8.会员开通与支付功能 9.微信端使用 10.后台数据清晰明了 11.可定制搭建 新…

安装Redis使用make命令报异常

报错信息如下&#xff1a; 解决方案&#xff1a; 安装 gcc yum install gcc-c -y清空编译失败残留文件&#xff1a; make distclean使用 make 命令进行编译&#xff1a; make -j 2 PREFIX/usr/local/redis install

JAVA实现生活废品回收系统 开源

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容三、界面展示3.1 登录注册3.2 资源类型&资源品类模块3.3 回收机构模块3.4 资源求购/出售/交易单模块3.5 客服咨询模块 四、免责说明 一、摘要 1.1 项目介绍 生活废品回收系统是可持续发展的解决方案&#xff0c;旨在鼓…

缓解光纤激光切割机老化之如何保养光纤激光切割机的光学镜片

激光切割头具备极高的精密度和昂贵的价格&#xff0c;是光纤激光切割机最关键的运行部分之一。在日常的光纤激光切割机维修过程中频繁出现的关于切割头使用寿命的问题就是内部光学镜片的污染及损坏。 部分导致光纤激光切割机激光切割头光学镜片污染的原因主要包括&#xff1a;对…

安卓开发实例:随机数

点击按钮生成一个1-100之间的随机数 activity_random_number.xml <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayoutxmlns:android"http://schemas.android.com/apk/res/android"xmlns:a…

Java实现电子元器件管理系统

目录 一、摘要1.1 项目简介1.2 项目录屏 二、研究内容三、界面展示3.1 登录&注册&主页3.2 元器件单位模块3.3 元器件仓库模块3.4 元器件供应商模块3.5 元器件品类模块3.6 元器件明细模块3.7 元器件类型模块3.8 元器件采购模块3.9 元器件领用模块3.10 系统基础模块 四、…

javascript错误处理和调试工具

目录 错误处理 try-catch语句 throw语句 Promise错误处理 调试工具 控制台打印 断点调试器 错误堆栈追踪 结论 1. 错误处理 2. 调试工具 3. 最佳实践和注意事项 结论 错误处理 try-catch语句 try-catch语句是处理JavaScript错误的基本方法。它允许我们尝试执行可…

EdgeCloudSim官方Sample运行——Windows+IntelliJ IDEA+Matlab

简介 EdgeCloudSim是一个用于模拟边缘云计算环境的开源仿真工具。它基于CloudSim&#xff0c;一个广泛使用的云计算仿真工具&#xff0c;但专门设计用于模拟边缘计算场景。 下载地址&#xff1a;https://github.com/CagataySonmez/EdgeCloudSim 使用步骤 1.IntelliJ IDEA中…

Vuex 动态模块状态管理器

模块化思想 我们之前的博文已经讲述了Vuex怎么使用命名空间实现模块化状态管理。详情可以看&#xff1a; Vuex命名空间及如何获取根模块、兄弟模块状态管理器_AI3D_WebEngineer的博客-CSDN博客https://blog.csdn.net/weixin_42274805/article/details/133269196?ops_request_…

宝塔面板8.0.3添加数据库mysql8.0版本会提示服务器状态异常问题的解决方案

宝塔面板8.0.3添加数据库提示服务器状态异常 宝塔面板8.0.3添加数据库mysql8.0版本会提示服务器状态异常问题的解决方案&#xff0c;首先是因为我们升级了面板&#xff0c;而我们的项目数据库是mysql8因此发生了莫名奇妙的数据不通问题&#xff0c;更奇怪是添加数据库会提示服…

《计算机工程》期刊投稿记录(2023.10.27更新)

本人于2023-09-22投稿《计算机工程》&#xff0c;预计2023-10-25完成加急外审&#xff0c;目前是2023-10-27&#xff0c;超时2天。同门超时17天。 在CSDN水评论区后发现&#xff1a;近期投稿《计算机工程》的文章&#xff0c;外审时间普遍超时。 最长超时时间有超过一个月的。…

在3分钟内使用AI-Chat生成精美PPT(附AI工具)

前言 在人工智能的大趋势下&#xff0c;AI-Chat是一款令人惊叹的技术。它用强大的自然语言处理技术帮助我们快速生成PPT&#xff0c;提高工作效率。本文将介绍使用ChatAI-Chat生成PPT的方法&#xff0c;以及使用Mindshow转换为炫酷的演示文稿。让技术为我们节省时间&#xff0c…

ChatGLM系列三:Freeze微调

目前主流对大模型进行微调方法有三种&#xff1a;Freeze方法、P-Tuning方法和Lora方法。 Freeze: 即参数冻结&#xff0c;对原始模型部分参数进行冻结操作&#xff0c;仅训练部分参数&#xff0c;以达到在单卡或不进行TP或PP操作&#xff0c;就可以对大模型进行训练。 Freeze…

数字孪生智慧工厂三维可视化系统解决方案,打造新一代智慧工厂

在制造业的快速发展和数字化转型的时代&#xff0c;智慧工厂已经成为制造企业前进的必经之路。数字孪生技术&#xff0c;作为工业数字化转型的核心动力&#xff0c;为打造智慧工厂提供了关键支持。其中&#xff0c;数字孪生智慧工厂三维可视化系统解决方案无疑是制造企业的得力…

PostMan 之 Mock 接口测试

在测试的时候经常会碰到后端开发工程师的接口还没有开发完成&#xff0c;但是测试任务已经分配过来。没有接口怎么测试呢&#xff1f; 测试人员可以通过 mock server 自己去造一个接口来访问。mock server 可用于模拟真实的接口。收到请求时&#xff0c;它会根据配置返回对应的…

如何查询IP地址的位置?

要查询IP地址的位置&#xff0c;您可以使用各种在线工具和服务。以下是一些常见的方法&#xff1a; 1. IP地址查询网站&#xff1a; 有很多在线IP地址查询网站 https://www.ip66.net/?utm-sourceLJ&utm-keyword?1146 &#xff0c;它们允许您输入一个IP地址并获取关于其位…

FL Studio21.2.0官方中文版重磅发布

FL Studio21.2.0官方中文版重磅发布纯正简体中文支持&#xff0c;更快捷的音频剪辑及素材管理器&#xff0c;多样主题随心换&#xff01;Mac版新增对苹果M2/1家族芯片原生支持。全能数字音乐工作站&#xff08;DAW&#xff09;编曲、剪辑、录音、混音&#xff0c;20余年的技术积…

【纯离线】Ubuntu离线安装ntp时间同步服务

Ubuntu离线安装ntp服务 准备阶段&#xff1a;下载安装包 apt-get download ntp apt-get download ntpdate 一、服务端( 192.166.6.xx) 1、环境准备 先判断是否已安装 systemd-timesyncd systemctl is-active systemd-timesyncd 如果返回结果是 active&#xff0c;则表示…

功能测试想进阶,可以提供一点点思路和方向吗?

1. 深入了解测试理论&#xff1a; 了解测试的原理、方法和最佳实践&#xff0c;包括黑盒测试、白盒测试、灰盒测试等。可以阅读相关的书籍或参加在线课程。 2. 学习相关测试工具&#xff1a; 掌握常用的测试工具&#xff0c;如缺陷发现工具、性能测试工具、安全测试工具等。可以…