1.创建Android项目工程:AndroidTest

创建过程可参考网上诸多教程。

2.添加新的Activity,步骤如下

a. 在layout文件夹上右键,New-Activity-相应Activity,(如Basic Activity).

b. 配置Activity

填写Activity Name,Layout Name,Title,Package name等。

注意:Package name需填写项目包名称,如com.androidtest(初学,不知道对不对,请指正).

c. 修改activity_second.xml和content_second.xml

如添加一个TextView,下面是content_second.xml的代码,我认为activity_second.xml应该是layout的一个框架,而content_second.xml为该框架的内容界面.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/content_second"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"app:layout_behavior="@string/appbar_scrolling_view_behavior"tools:context="com.androidtest.SecondActivity"tools:showIn="@layout/activity_second"><TextViewandroid:text="The Second Activity"android:id="@+id/textView"app:layout_anchor="@+id/include"app:layout_anchorGravity="center_vertical|left"android:layout_gravity="center_vertical|right"android:layout_height="42dp"android:layout_width="match_parent"android:textSize="30sp" />
</RelativeLayout>

d.到此Activity就添加好了,下面是预览界面

3.Activity之间的跳转

a.在activity_main.xml添加按钮

代码如下:

<Buttonandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="Sencond Activity"android:onClick="onClick"/>

注意:因android:text="Sencond Activity"采用了硬编码字符串,所以AS给了提示(超智能),此处先不修改了,提示如下:

b.在MainActivity添加Button的onClick事件处理

/*** 按钮Sencond Activity 事件处理*/
public void onClick(View view)
{try{startActivity(new Intent("com.AndroidTest.SecondActivity"));}catch (Exception ex){     // 显示异常信息Toast.makeText(this, ex.getMessage(), Toast.LENGTH_SHORT).show();}
}

4.运行及异常处理

a. 异常信息

添加好了Activity,代码也写好了,接下来就是运行了,结果悲剧了,出现了异常:No Activity found to handle Intent { act=com.AndroidTest.SecondActivity }

见下图:

b. 解决办法

Intent分为显示Intent和隐式Intent;使用显示Intent时,可以不添加<intent-filter>标签,但是隐式Intent必须添加<intent-filter>标签,所以解决方法有两种:

第一种:

//将3.b中的代码修改为显示Intent
public void onClick(View view)
{try{//startActivity(new Intent("com.AndroidTest.SecondActivity"));//隐式intentIntent intent = new Intent(this, SecondActivity.class);//显示intentstartActivity(intent);}catch (Exception ex){// 显示异常信息Toast.makeText(this, ex.getMessage(), Toast.LENGTH_SHORT).show();}
}

第二种:

修改AndroidManifest.xml中SecondActivity部分,添加<intent-filter>标签.

原代码:

<activityandroid:name=".SecondActivity"android:label="@string/title_activity_second"android:theme="@style/AppTheme.NoActionBar"></activity>

修改后代码:

<activityandroid:name=".SecondActivity"android:label="@string/title_activity_second"android:theme="@style/AppTheme.NoActionBar"><intent-filter><action android:name="com.AndroidTest.SecondActivity" /><category android:name="android.intent.category.DEFAULT" /></intent-filter>
</activity>

c. 异常解释

每一个通过startActivity()方法发出的隐式Intent都至少有一个category,就是 "android.intent.category.DEFAULT",

所以只要是想接收一个隐式Intent的Activity都应该包括"android.intent.category.DEFAULT" category,不然将导致 Intent 匹配失败。

参见:Android关于No Activity found to handle Intent的问题

d. 最终运行图

5. 总结

学习Android一周,好多知识还没有形成一个整体框架,再接再厉。

转载于:https://www.cnblogs.com/iZander/p/5961351.html

Android学习笔记之Android Studio添加新的Activity相关推荐

  1. android学习笔记---1.为应用添加新的Activity,中使用Intent(意图),结果码,请求码,得到新打开Activity 关闭后返回的数据,Bundle类的作用

    1.为应用添加新的Activity 第一步:新建一个继承Activity的类,如:NewActivity public class NewActivity extends Activity {     ...

  2. android学习笔记---33_为应用添加多个Activity与参数传递

    33_为应用添加多个Activity与参数传递 ------------------------------------------ 1.一个activity代表一个的窗口,那么一个应用中往往会有很多 ...

  3. Android学习笔记:Android基础知识点(不断更新中)

    1.Android学习笔记:OkHttp 2.Android学习笔记:更新UI的方法(UI线程和非UI线程) 3.Android学习笔记:Volley 4.Android学习笔记:Handler 5. ...

  4. Android学习笔记(Android Studio)3-3(ProgressBar ProgressDialog)(加载进度条、转圈圈)UI组件之弹出组件

    Android学习笔记3-3 推荐新手向学习视频:B站https://www.bilibili.com/video/av38409964点我传送 3-3 ProgressBar & Progr ...

  5. Android学习笔记(七):多个Activity和Intent

    根据www.mars-droid.com:Andriod开发视频教学,先跳过书本<Beginning Android 2>的几个章,我是这两个资源一起看,需要进行一下同步.先初步了解一下应 ...

  6. Android学习笔记(5)----启动 Theme.Dialog 主题的Activity时程序崩溃的解决办法

    新建了一个Android Studio工程,在MainActivity的主界面中添加了两个按钮,点击其中一个按钮用来启动 NormalActivity,点击另一按钮用来启动DialogActivity ...

  7. Android学习笔记(四):android画图之paint之setXfermode

    2019独角兽企业重金招聘Python工程师标准>>> setXfermode 设置两张图片相交时的模式 我们知道 在正常的情况下,在已有的图像上绘图将会在其上面添加一层新的形状. ...

  8. Android学习笔记之android:collapseColumns,android:shrinkColumns和stretchColumn

    TableLayout是一个使用复杂的布局,最简单的用法就仅仅是拖拉控件做出个界面,但实际上,会经常在代码里使用TableLayout,例如做出表格的效果.本文主要介绍TableLayout的基本使用 ...

  9. Android学习笔记之 android:collapseColumns ,android:shrinkColumns 和stretchColumns

    TableLayout是一个使用复杂的布局,最简单的用法就仅仅是拖拉控件做出个界面,但实际上,会经常在代码里使用TableLayout,例如做出表格的效果.本文主要介绍TableLayout的基本使用 ...

最新文章

  1. 码书:入门中文NLP必备干货:5分钟看懂“结巴”分词(Jieba)
  2. 文本处理相关资料整理
  3. js定义鼠标经过变换图片
  4. JS OffsetParent属性深入解析
  5. linux 普通用户crond,linux下普通用户的定时任务
  6. 全球首届“AI球球大作战:Go-Bigger多智能体决策智能挑战赛”开启
  7. Intellij IDEA中 Debug 用法
  8. mysql算法函数_十个实用MySQL函数
  9. 摄像头图像分析目标物体大小位置_对智能驾驶系统三种环境传感器布局的冗余关系分析...
  10. zend studio【快捷键】
  11. 学习Java过程中创建动态数组的两种方法比较
  12. java水电费收费系统_基于SSM框架的JAVA水费电费管理系统
  13. 盛大进军语音识别领域:将开源哼唱搜索技术
  14. 在土豆传的第一篇视频
  15. 纯Asp实现微信支付
  16. 关于狄利克雷分布的理解
  17. Pycaffe 使用集锦
  18. 在Word和OneNote中插入数学公式
  19. 4.Redis 所消耗的资源
  20. 破解圣经之滚瓜烂熟篇

热门文章

  1. 华为atn980传输设备_在头发丝中实现每秒1000张高清DVD传输
  2. java windows wrapper_Java Service Wrapper 使用(windows)
  3. js增加属性_前端js基础2
  4. 守护进程中创建的对象php,在PHP中生成守护进程(Daemon Process)
  5. springcloud是什么_阿里P8道出,入职阿里必会199道SpringCloud面试题,你能掌握多少?...
  6. 【jsp】jsp的内置对象(部分)
  7. 删除url中某个参数
  8. SRWebSocket源码浅析(下)
  9. 小虎计算器-技术支持
  10. 看看Vector源码Java 9