`

android之隐示意图--在一个 <intent-filter>意图中用两个category启动这个activity

 
阅读更多

主页面布局:layout/activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">


    <Button
        android:id="@+id/btn1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="按Category值1启动目标Activity" />
    <Button
        android:id="@+id/btn2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="按Category值2启动目标Activity" />


</LinearLayout>

主页面java代码:

package com.sxt.day04_07_twoaction;


import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;


public class MainActivity extends Activity implements OnClickListener{


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setListener();
}


private void setListener() {
findViewById(R.id.btn1).setOnClickListener(this);
findViewById(R.id.btn2).setOnClickListener(this);
}


@Override
public void onClick(View v) {
Intent intent=new Intent();
intent.setAction("com.sxt.day04_07_twoaction.SecondActivity");
switch (v.getId()) {
case R.id.btn1:
intent.addCategory("com.sxt.day04_07_twoaction.category");
break;
case R.id.btn2:
intent.addCategory("android.intent.category.DEFAULT");
break;
}
startActivity(intent);
}
}

第二个页面布局:layout/activity_second.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".SecondActivity" >


    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />


</RelativeLayout>

第二个页面java代码:

package com.sxt.day04_07_twoaction;


import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;


public class SecondActivity extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
Log.i("main","SecondActivity");
}


}

列表清单:AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.sxt.day04_07_twoaction"
    android:versionCode="1"
    android:versionName="1.0" >


    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />


    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.sxt.day04_07_twoaction.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="com.sxt.day04_07_twoaction.SecondActivity"
            android:label="@string/title_activity_second" >
            <intent-filter>
                <action android:name="com.sxt.day04_07_twoaction.SecondActivity"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <category android:name="com.sxt.day04_07_twoaction.category"/>
            </intent-filter>
        </activity>
    </application>


</manifest>

效果:



分享到:
评论

相关推荐

    Androidmanifest.xml文件分析

    &lt;intent-filter&gt;&lt;/intent-filter&gt; &lt;meta-data/&gt; &lt;/activity-alias&gt; &lt;service&gt; &lt;intent-filter&gt;&lt;/intent-filter&gt; &lt;meta-data/&gt; &lt;/service&gt; &lt;receiver&gt; &lt;intent-filter&gt;&lt;/intent-filter&gt; &lt;meta-data/&gt; &lt;/...

    Data、Type属性与Intent-filter配置

    在这个例子中,我们声明了一个Action为`VIEW`的Intent-filter,这意味着我们的Activity可以响应查看操作。Category `DEFAULT`表示这是默认的处理方式。`data`部分指定了MIME类型为`image/*`,意味着Activity可以处理...

    041集-启动带两个Category值的预定义Activity和桌面Activity

    在AndroidManifest.xml中,我们通过`&lt;intent-filter&gt;`标签来设置Activity的Category。例如,一个同时拥有`CATEGORY_LAUNCHER`和`CATEGORY_DEFAULT`的Activity声明可能如下: ```xml &lt;activity android:name="....

    Google Android揭秘第三章实例.rar

    &lt;intent-filter&gt; &lt;action android:name="android.intent.action.MAIN" /&gt; &lt;category android:name="android.intent.category.LAUNCHER" /&gt; &lt;/intent-filter&gt; &lt;/activity&gt; &lt;activity android...

    Android Intent Filter用法

    通过在&lt;activity&gt;、&lt;service&gt;、&lt;receiver&gt;或&lt;provider&gt;标签内添加&lt;intent-filter&gt;子标签,我们可以为每个组件定义其能够接收的Intent类别。 1. **Action**: Action是Intent的一个属性,表示Intent要执行的动作,...

    ImagesWidget.rar

    &lt;intent-filter&gt; &lt;action android:name="android.intent.action.MAIN" /&gt; &lt;category android:name="android.intent.category.LAUNCHER" /&gt; &lt;/intent-filter&gt; &lt;intent-filter&gt; &lt;action android:name=...

    android中隐式intent与activity的匹配原则2022优秀文档.pptx

    当一个Activity想要通过隐式Intent方式激活时,必须在AndroidManifest.xml文件中配置&lt;intent-filter&gt;标签,并指定合适的Action和Category。否则,该Activity将无法被隐式Intent激活。 在&lt;intent-filter&gt;标签中,...

    Android activity-alias别名的使用

    在Android开发中,Activity是应用程序的基本组件之一,用于呈现用户界面并与用户交互。然而,有时候开发者可能需要在不改变原始Activity的基础上实现不同的功能或者提供不同的入口,这时Android系统提供的Activity...

    Android利用Intent启动和关闭Activity

    应用界面中会有两个按钮,一个用于拨打电话,一个用于启动新的Activity。当用户点击按钮时,相应的Intent会被创建并启动对应的操作。 ### 注意事项 - 显式关闭Activity应谨慎使用,因为可能影响用户的导航体验。 -...

    Android开发 两个Activity之间通过Intent跳转传值

    本文将深入探讨如何在两个Activity之间通过Intent进行数据传递。 首先,理解Intent的基本概念。Intent是一个意图对象,它表达了应用程序想要执行的动作(如打开一个网页、拨打电话)以及可能涉及到的数据。在...

    安卓-Activity-广播接收者的使用

    在AndroidManifest.xml中,需要为Activity定义`&lt;intent-filter&gt;`来声明它可以响应哪些隐式意图。 ```xml &lt;activity android:name="OtherActivity"&gt; &lt;intent-filter&gt; &lt;action android:name=...

    Android代码-隐藏安装包图标使用其他应用启动本应用.rar

    如果我们想要隐藏这个图标,我们需要修改AndroidManifest.xml,将默认的launcher activity的`&lt;intent-filter&gt;`中的`ACTION_MAIN`和`CATEGORY_LAUNCHER`去掉,这样这个Activity就不会被启动器识别,图标也就不会显示...

    动态设置启动的第一个activity

    这个主Activity通常在AndroidManifest.xml文件中通过`&lt;intent-filter&gt;`标签和`&lt;action android:name="android.intent.action.MAIN"&gt;`以及`&lt;category android:name="android.intent.category.LAUNCHER"&gt;`来标识。...

    Android应用源码之隐藏安装包图标使用其他应用启动本应用.zip

    当用户点击应用图标时,系统会默认启动定义在AndroidManifest.xml文件中的`&lt;intent-filter&gt;`标签下的`&lt;action android:name="android.intent.action.MAIN" /&gt;`和`&lt;category android:name="android.intent.category....

    Activity_intent-filter

    在 `AndroidManifest.xml` 文件中,你可以为每个 `Activity` 添加一个或多个 `&lt;intent-filter&gt;` 标签,以声明其可处理的 `Intent` 类型。例如,如果你希望其他应用能通过点击一个URL启动你的 `Activity`,你可以...

    Android高级应用源码-隐藏安装包图标使用其他应用启动本应用.zip

    通常,我们会在AndroidManifest.xml文件中设置主Activity,并通过设置`&lt;intent-filter&gt;`来声明其为启动点。当用户点击应用图标时,系统会根据这个配置启动相应的Activity。 要隐藏应用图标,我们只需简单地移除主...

    安卓Android源码——隐藏安装包图标使用其他启动本.rar

    首先,我们要明白在Android中,一个应用程序的图标通常是由`AndroidManifest.xml`文件中的`&lt;activity&gt;`标签内的`&lt;intent-filter&gt;`来定义的。特别是带有`ACTION.MAIN`和`CATEGORY.LAUNCHER`属性的`&lt;intent-filter&gt;`,...

    android edittext不弹出软键盘三种方法

    android edittext不弹出软键盘三种... &lt;intent-filter&gt; &lt;action android:name="android.intent.action.MAIN" /&gt; &lt;category android:name="android.intent.category.LAUNCHER" /&gt; &lt;/intent-filter&gt; &lt;/activity&gt;

    AndroidManifest.xml文件详解

    &lt;intent-filter&gt;&lt;/intent-filter&gt; &lt;meta-data/&gt; &lt;/activity-alias&gt; &lt;service&gt; &lt;intent-filter&gt;&lt;/intent-filter&gt; &lt;meta-data/&gt; &lt;/service&gt; &lt;receiver&gt; &lt;intent-filter&gt;&lt;/intent-filter&gt; &lt;meta-data/&gt; &lt;/...

Global site tag (gtag.js) - Google Analytics