当前位置: 移动技术网 > IT编程>移动开发>Android > android隐式意图激活自定义界面和系统应用界面的实例

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

2019年07月24日  | 移动技术网IT编程  | 我要评论

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

效果:

点击第二个按钮后:

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

附代码:

主窗体的代码:

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隐式意图激活自定义界面和系统应用界面的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网