如何切换到自定义的Activity

一. 新建一个空的工程,并添加一个按钮

二.新建一个布局文件,命名为my_aty, 并添加一个文本

三.新建一个类,命名为MyAty,并重写onCreate函数

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.my_aty);//绑定布局文件
    }

四.修改MainAcitivity.java,启动MyAty

   protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViewById(R.id.btnStartMyAty).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(MainActivity.this,MyAty.class));
            }
        });
    }

五.在AndroidManifestAcivity.xml中注册MyAty

 <activity android:name=".MyAty"/>

六.运行结果

PS:还可以采用另一种方式实现activity之间的切换,即隐式Intent

在MyAty中添加一个常量

public static final String ACTION = "com.example.luozhenshan.learnintent.intent.action.MyAty";

MainAcitivity.java中的代码修改为:

startActivity(new Intent(MyAty.ACTION));

AndroidManifest.xml中的代码修改为:

<activity android:name=".MyAty">
            <intent-filter>
                <category android:name="android.intent.category.DEFAULT"/>
                <action android:name="com.example.luozhenshan.learnintent.intent.action.MyAty"/>
            </intent-filter>
        </activity>

使用隐式Intent可实现跨应用调用Activity

一.在同一个project中新建一个模块,命名为App1,并在布局文件中添加一个按钮

此时会显示有两个不同的App:App和App1

二. 修改App1的MainActivity.java的onCreate函数

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViewById(R.id.btnStartMyAty).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent("com.example.luozhenshan.learnintent.intent.action.MyAty"));
            }
        });
    }

三.运行结果

如何禁止一个Activity被别的App调用

将MyAty的exported属性设置为false即可。

 <activity android:name=".MyAty" android:exported="false">
            <intent-filter>
                <category android:name="android.intent.category.DEFAULT"/>
                <action android:name="com.example.luozhenshan.learnintent.intent.action.MyAty"/>
            </intent-filter>
        </activity>

一旦别的应用调用MyAty,程序会抛出异常,因此在App1的MainActivity.java中对异常进行处理

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViewById(R.id.btnStartMyAty).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    startActivity(new Intent("com.example.luozhenshan.learnintent.intent.action.MyAty"));
                }
                catch(Exception e)
                {
                    Toast.makeText(MainActivity.this,"can not run the activity",Toast.LENGTH_LONG).show();
                }
            }
        });
    }

运行结果

时间: 2024-11-05 16:10:56

如何切换到自定义的Activity的相关文章

apkplug主题皮肤切换之自定义样式-05

本文基于apkplug V1.6.9讲解 一 何为apkplug自定义样式切换 apkplug主题切换包含两个层次 1.通用主题,与系统主题相似 2.自定义控件样式切换 根据上一篇文章讲解我们可以判定通用主题有其局限性,在很多情况下我们需要替换的是与我们应用本事相结合的自定义控件样式.如QQ聊天挂件 QQ皮肤,QQ聊天泡泡等.针对这种情况我们为apkplug新设计了一套接口,以满足开发者这方面的需求. 二 自定义控件样式切换 自定义控件样式,顾名思义是我们开发者要求的自定义,因为它与开发的应用本

springboot多数据源动态切换和自定义mybatis件分页插

1.配置多数据源 增加druid依赖 完整pom文件 数据源配置文件 route.datasource.driver-class-name= com.mysql.jdbc.Driver route.datasource.url= jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8 route.datasource.username= root route.datasource.password= 1234

iOS7新特性 ViewController转场切换(三) 自定义视图控制器容器的切换---非交互式

@继续前面的内容,这一章,主要介绍自定义ViewController容器上视图VC的切换.先来看看系统给我们提供的容器控制器 UINavigationController和UITabBarController 都有一个NSArray类型的属性viewControllers,很明显,存储的就是需要切换的视图VC.同理,我们定义一个ContainerViewController,是UIViewController的直接子类,用来作为容器依托,额,其他属性定义详见代码吧,这里不多说了.(PS:原先我进

UI--Android中的状态切换按钮自定义

<代码里的世界> -UI篇 用文字札记描绘自己 android学习之路 转载请保留出处 by Qiao http://blog.csdn.net/qiaoidea/article/details/46715453 1.概述 Android中关于控制开关和页面/状态切换的使用场景还是比较多的.源生做的支持也有比如RadioGroup 和Tabhost等.这里准备通过自定义View来模仿学习下IOS两种常见UI样式: SwitchButton 和 SegmentControl. 首先先通过简易的组

横竖屏切换时,禁止activity重新创建,android:configChanges=&quot;keyboardHidden|orientation&quot; 不起作用

这个网上搜索,很多结果都是: AndroidManifest.xml android:configChanges="keyboardHidden|orientation" 但是,实际上很多手机上,这个根本不起作用.这是为什么呢? 因为,但多数人陈陈相因,文章直接转,都没有结果自己实践. 在低版本上,这个是可以起作用.在android 4.0 以上实际上这个是不起作用的. 必须要加上screenSize. android:configChanges="keyboardHidde

spring boot--日志、开发和生产环境切换、自定义配置

Spring Boot日志常用配置: # 日志输出的地址:Spring Boot默认并没有进行文件输出,只在控制台中进行了打印 logging.file=/home/zhou # 日志级别 debug-> info -> warning -> error # 默认级别为 info # 如果设置了debug=true的时候,日志级别会自动降低为debug # ROOT代表默认全局设置 logging.level.ROOT=INFO # 可以设置指定包的输出级别,这样的话,指定的包,级别以下

Android为ViewPager增加切换动画——自定义ViewPager

转载请注明出处:http://blog.csdn.net/allen315410/article/details/44224517 在上篇博客中,我写了一个使用属性动画为ViewPager添加切换动画的方法,并且可以兼容到Android3.0以下版本的设备上,那么关于为ViewPager添加动画的方式还会有另外一种实现方案,就是自定义一个自己带动画效果的ViewPager,关于上篇博客,还没来得及查看的朋友可以点击这里进行查看.下面,我们将新建一个工程,来说说怎样自定义一个自带切换动画效果的Vi

仿QQ电话/消息切换的自定义布局结合Fragment解决你的需求!

转载请注明出处:王亟亟的大牛之路 先上模仿的对象:QQ的电话/消息 界面 用户点击消息或者电话会切换不同的界面 然后再上自己实现的界面 然后再附带了一些每一个Fragment内部的操作,来模拟切换后的效果 实现方法: 一个自定义控件+下面的Fragment.利用setOnSegmentControlViewClickListener方法来监听用户的点击来对界面进行操作. 项目目录结构 一个主Activity加一系列分页的Fragment(其实这里可以用Java代码来添加Fragment,但是考虑

iOS_仿QQ空间_控制器的切换_自定义segmentCtrol

最终效果图: 主控制器 // // BeyondViewController.m // 28_QQ空间 // // Created by beyond on 14-9-1. // Copyright (c) 2014年 com.beyond. All rights reserved. // 主控制器包括两个部分:左边的Dock,右边的contentView,其中左边Dock又包括三个部分(顶部的头像按钮.中部的选项卡.底部的一个整体),其中底部的整体 包含三个按钮「说说.拍照.日记」,中部的选项