如何切换到自定义的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();
}
}
});
}
运行结果
如何切换到自定义的Activity的更多相关文章
- springboot多数据源动态切换和自定义mybatis分页插件
1.配置多数据源 增加druid依赖 完整pom文件 数据源配置文件 route.datasource.driver-class-name= com.mysql.jdbc.Driver route.d ...
- spring boot--日志、开发和生产环境切换、自定义配置(环境变量)
Spring Boot日志常用配置: # 日志输出的地址:Spring Boot默认并没有进行文件输出,只在控制台中进行了打印 logging.file=/home/zhou # 日志级别 debug ...
- [转]自定义UiPath Activity实践
本文转自:https://segmentfault.com/a/1190000017440647 为了对UiPath Activity的实现方式一探究竟,自己尝试实践编写了一个简单的Activity, ...
- Android 开发学习进程0.12 自定义view activity的属性
设置类似钉钉或tel的圆形用户名首字母头像 设置有两种方法,一是使用已有的库或自定义的view组件,但如果确定只是文字头像,也可使用textview的backgrou属性,调整资源文件使textvie ...
- [Android Pro] 横竖屏切换时,禁止activity重新创建,android:configChanges="keyboardHidden|orientation" 不起作用
referece to : http://blog.csdn.net/mybook1122/article/details/24978025 这个网上搜索,很多结果都是: AndroidManifes ...
- Unity3d与Android交互
先看下效果 你一定会说,然并卵! 没错,这里只是一个最简单的例子,unity与android activity 互相传参数. 玩过手游的都知道,在你要为你心爱的游戏角色准备花钱买钻石,点击购买的时候, ...
- Activity 横竖屏切换
前言 在开发中常要处理横竖屏切换,怎么处理先看生命周期 申明 Activity 横竖屏切换时需要回调两个函数 ,所以在此将这个两个函数暂时看成是Activity 横竖屏切换的生命周期的一部分,这两个函 ...
- Android中仿淘宝首页顶部滚动自定义HorizontalScrollView定时水平自动切换图片
Android中仿淘宝首页顶部滚动自定义HorizontalScrollView定时水平自动切换图片 自定义ADPager 自定义水平滚动的ScrollView效仿ViewPager 当遇到要在Vie ...
- Android实现Activity页面跳转切换动画特效
了解Android程序设计的人应该知道,在Android 2.0之后有了overridePendingTransition(),其中里面两个参数,一个是前一个activity的退出,另一个activi ...
随机推荐
- Maven学习笔记—私服(包含maven的setting.xml配置)
为什么要用远程仓库(私服) 如果没有私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的maven仓库下载到本地,而一个团队中的所有人都重复的从maven仓库下载构件,这样就加大了中央仓库 ...
- Window mysql 安装配置
1.下载 安装包 mysql-noinstall--winx64.zip 2.解压缩zip包 安装路径 C:\Program Files\MySQL\mysql--winx64 3.配置环境变量 添加 ...
- corethink功能模块探索开发(十六)后台搜索功能
效果图: 代码很简单,就是添加搜索框,搜索字段,在初始化页面查询的时候添加查询条件. 1.添加搜索框 添加到删除按钮后边. ->setSearch('请输入设备名称/MAC/宿舍号', U('i ...
- 查看Oracle 基表的方法
从 v$fixed_view_definition 视图中可以看到 性能视图所依赖的基表 SELECT view_definition FROM v$fixed_view_definition ...
- php imagemagick库安装使用
imagemagick介绍: ImageMagick® is a software suite to create, edit, compose, or convert bitmap images. ...
- Fatal error in launcher: Unable to create process using '"'的报错解决
执行命令前加python -m就好了 python -m pip install --upgrade pip这条命令用来升级pip
- Windows Live Writer 网易博客配置
一.去官网下载 Windows Live Write 组件 二.配置,选中其它服务,然后会到如下界面 主要是这里经常不知道选择什么,容易忘记. 下拉框选中metaweblog API 类型,把这个地址 ...
- 2018 ACM 国际大学生程序设计竞赛上海大都会 F - Color it (扫描线)
题意:一个N*M的矩形,每个点初始都是白色的,有Q次操作,每次操作将以(x,y)为圆心,r为半径的区域涂成黑点.求最后剩余白色点数. 分析:对每行,将Q次操作在该行的涂色视作一段区间,那么该行最后的白 ...
- DataNode启动不成功——java.net.BindException: Port in use: localhost:0 Caused by: java.net.BindException: Cannot assign requested address解决办法
爱折腾的人总是会出线各种奇怪的问题.记得之前听一位大师讲过,我们不能踩完前进路上的所有坑前进,而应该学会怎样避开前进路上的坑,踩得坑越多,可能你的经验越丰富,但是付出的时间代价可能不是经验能换来的.我 ...
- nagios报错Error: No such CGI app - /usr/local/nagios/sbin/nagios/cgi-bin/status.cgi may not exist or is not executable by this process.
加上rewrite rewrite ^/nagios/cgi-bin/(.*)\.cgi /$.cgi break;