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

android隐式意图激活自定义界面和系统应用界面的实例

程序员文章站 2023-11-26 17:44:58
我们也可以使用隐士意图激活自定义的界面,并且可以携带数据: 效果: 点击第二个按钮后: 点击最后一个按钮(激活系统短消息界面)后: 附代码: 主窗体的...

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

效果:

android隐式意图激活自定义界面和系统应用界面的实例

点击第二个按钮后:

android隐式意图激活自定义界面和系统应用界面的实例

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

android隐式意图激活自定义界面和系统应用界面的实例

附代码:

主窗体的代码:

package com.yy.twoactivity;

import android.app.activity;
import android.content.intent;
import android.net.uri;
import android.os.bundle;
import android.view.view;

public class mainactivity extends activity {

  @override
  protected void oncreate(bundle savedinstancestate) {
    super.oncreate(savedinstancestate);
    setcontentview(r.layout.activity_main);
  }
  
  /**
   * 点击事件,当用户点击的时候跳转到第二个界面
   * @param view
   */
  public void click(view view){
    //意图
    intent intent=new intent();
    //设置包和界面,显式意图
    intent.setclassname(this, "com.yy.twoactivity.secondactivity");
    //跳转到新的设定好的界面
    startactivity(intent);
  }
  
  /**
   * 点击事件,当用户点击的时候隐式意图跳转到第二个界面
   * @param view
   */
  public void click3(view view){
    //意图
    intent intent=new intent();
    //设置包和界面,隐式意图
    intent.setaction("com.yy.xxx");
    //设置额外的信息【非必需,和主配置文件对应】
    intent.addcategory(intent.category_default);
    //设置数据【非必须,和主配置文件对应,可以携带数据】
    intent.setdata(uri.parse("yy:adbc"));
    //跳转到新的设定好的界面
    startactivity(intent);
  }
  
  /**
   * 点击事件,激活系统的应用 程序界面
   * @param view
   */
  public void click2(view view){
    //意图
    intent intent=new intent();
    //设置预打开系统应用的包和界面,显式意图
    // cmp=com.android.gallery/com.android.camera.gallerypicker 
    intent.setclassname("com.android.gallery", "com.android.camera.gallerypicker");
    //跳转到新的设定好的界面
    startactivity(intent);
  }
  
  /**
   * 点击事件,当用户点击的时候隐式意图激活系统短消息
   * @param view
   */
  public void click4(view view){
    //意图
    intent intent=new intent();
    //设置包和界面,隐式意图
    intent.setaction("android.intent.action.sendto");
    //设置额外的信息【非必需,和主配置文件对应】
    intent.addcategory("android.intent.category.default");
    //设置数据【非必须,和主配置文件对应,可以携带数据】,前缀是看短信息应用配置文件的scheme知道的
    intent.setdata(uri.parse("sms:15588890908"));
    //跳转到新的设定好的界面
    startactivity(intent);
  }
}

第二个窗体的代码:

package com.yy.twoactivity;

import android.app.activity;
import android.content.intent;
import android.net.uri;
import android.os.bundle;

public class secondactivity extends activity {
  @override
  protected void oncreate(bundle savedinstancestate) {
    super.oncreate(savedinstancestate);
    setcontentview(r.layout.activity2);
    
    //获取打开当前界面的意图
    intent intent=getintent();
    uri uri=intent.getdata();
    //获取到使用intent.setdata(uri.parse("yy:adbc"));携带的数据
    string data=uri.getschemespecificpart();
    system.out.println(data);
  }
}

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

<application
    android:allowbackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/apptheme" >
    <activity
      android:name=".mainactivity"
      android:label="@string/app_name" >
      <intent-filter>
        <action android:name="android.intent.action.main" />

        <category android:name="android.intent.category.launcher" />
      </intent-filter>
    </activity>
    <activity
      android:name=".secondactivity"
      android:label="@string/app_second_name" >
      <intent-filter>
        <action android:name="com.yy.xxx"/>
        <category android:name="android.intent.category.default"></category>
        <data android:scheme="yy"/>
      </intent-filter>
    </activity>
  </application>

以上这篇android隐式意图激活自定义界面和系统应用界面的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。