zoukankan      html  css  js  c++  java
  • android隐式意图激活自定义界面和系统应用界面

    我们也可以使用隐士意图激活自定义的界面,并且可以携带数据:

    效果:

    点击第二个按钮后:

    点击最后一个按钮(激活系统短消息界面)后:

    附代码:

    主窗体的代码:

     1 package com.yy.twoactivity;
     2 
     3 import android.app.Activity;
     4 import android.content.Intent;
     5 import android.net.Uri;
     6 import android.os.Bundle;
     7 import android.view.View;
     8 
     9 public class MainActivity extends Activity {
    10 
    11     @Override
    12     protected void onCreate(Bundle savedInstanceState) {
    13         super.onCreate(savedInstanceState);
    14         setContentView(R.layout.activity_main);
    15     }
    16     
    17     /**
    18      * 点击事件,当用户点击的时候跳转到第二个界面
    19      * @param view
    20      */
    21     public void click(View view){
    22         //意图
    23         Intent intent=new Intent();
    24         //设置包和界面,显式意图
    25         intent.setClassName(this, "com.yy.twoactivity.SecondActivity");
    26         //跳转到新的设定好的界面
    27         startActivity(intent);
    28     }
    29     
    30     /**
    31      * 点击事件,当用户点击的时候隐式意图跳转到第二个界面
    32      * @param view
    33      */
    34     public void click3(View view){
    35         //意图
    36         Intent intent=new Intent();
    37         //设置包和界面,隐式意图
    38         intent.setAction("com.yy.xxx");
    39         //设置额外的信息【非必需,和主配置文件对应】
    40         intent.addCategory(Intent.CATEGORY_DEFAULT);
    41         //设置数据【非必须,和主配置文件对应,可以携带数据】
    42         intent.setData(Uri.parse("yy:adbc"));
    43         //跳转到新的设定好的界面
    44         startActivity(intent);
    45     }
    46     
    47     /**
    48      * 点击事件,激活系统的应用 程序界面
    49      * @param view
    50      */
    51     public void click2(View view){
    52         //意图
    53         Intent intent=new Intent();
    54         //设置预打开系统应用的包和界面,显式意图
    55         // cmp=com.android.gallery/com.android.camera.GalleryPicker 
    56         intent.setClassName("com.android.gallery", "com.android.camera.GalleryPicker");
    57         //跳转到新的设定好的界面
    58         startActivity(intent);
    59     }
    60     
    61     /**
    62      * 点击事件,当用户点击的时候隐式意图激活系统短消息
    63      * @param view
    64      */
    65     public void click4(View view){
    66         //意图
    67         Intent intent=new Intent();
    68         //设置包和界面,隐式意图
    69         intent.setAction("android.intent.action.SENDTO");
    70         //设置额外的信息【非必需,和主配置文件对应】
    71         intent.addCategory("android.intent.category.DEFAULT");
    72         //设置数据【非必须,和主配置文件对应,可以携带数据】,前缀是看短信息应用配置文件的scheme知道的
    73         intent.setData(Uri.parse("sms:15588890908"));
    74         //跳转到新的设定好的界面
    75         startActivity(intent);
    76     }
    77 }


    第二个窗体的代码:

     1 package com.yy.twoactivity;
     2 
     3 import android.app.Activity;
     4 import android.content.Intent;
     5 import android.net.Uri;
     6 import android.os.Bundle;
     7 
     8 public class SecondActivity extends Activity {
     9     @Override
    10     protected void onCreate(Bundle savedInstanceState) {
    11         super.onCreate(savedInstanceState);
    12         setContentView(R.layout.activity2);
    13         
    14         //获取打开当前界面的意图
    15         Intent intent=getIntent();
    16         Uri uri=intent.getData();
    17         //获取到使用intent.setData(Uri.parse("yy:adbc"));携带的数据
    18         String data=uri.getSchemeSpecificPart();
    19         System.out.println(data);
    20     }
    21 }

    另外需要在AndoridManifest.xml文件中配置:

     1  <application
     2         android:allowBackup="true"
     3         android:icon="@drawable/ic_launcher"
     4         android:label="@string/app_name"
     5         android:theme="@style/AppTheme" >
     6         <activity
     7             android:name=".MainActivity"
     8             android:label="@string/app_name" >
     9             <intent-filter>
    10                 <action android:name="android.intent.action.MAIN" />
    11 
    12                 <category android:name="android.intent.category.LAUNCHER" />
    13             </intent-filter>
    14         </activity>
    15         <activity
    16             android:name=".SecondActivity"
    17             android:label="@string/app_second_name" >
    18             <intent-filter>
    19                 <action android:name="com.yy.xxx"/>
    20                 <category android:name="android.intent.category.DEFAULT"></category>
    21                 <data android:scheme="yy"/>
    22             </intent-filter>
    23         </activity>
    24     </application>
  • 相关阅读:
    移动端网页使用flexible.js加入百度联盟广告样式不一致问题解决
    flexible.js移动端适配安卓高分辨不兼容问题
    vue select二级城市联动及第二级默认选中第一个option值
    设置滚动条样式
    windows mongodb最常用命令简单归纳
    vue用阿里云oss上传图片使用分片上传只能上传100kb以内的解决办法
    vue实现文章内容过长点击阅读全文功能
    vue获取dom元素注意问题
    input框取消光标颜色手机端不生效
    基于 Vue.js 的移动端组件库mint-ui实现无限滚动加载更多
  • 原文地址:https://www.cnblogs.com/javayuan/p/4951330.html
Copyright © 2011-2022 走看看