Activity入门
来源:互联网 发布:raysource 软件下载 编辑:程序博客网 时间:2024/06/02 04:06
[1]什么是Activity?
activity是android四大组件之一简单地说,activity就是一个可见的并且可以和用户直接进行交互的一个窗口.一般的,一个activity绑定了一个xml视图文件.
[2]怎么创建一个activity并显示到手机界面上?
使用Android Studio(或者ADT)新建android项目时,一般会自动生成一个activity和一个xml布局文件,并且设置为启动activity.那么我们怎么去新建一个自定义的activity呢? 第一步:创建一个类继承自activity
public class MyActivity extends Activity {}
第二步:重写activity的onCreate(),注意onCreate方法有多个重载,别选错了
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); }
第三步:在onCreate方法中使用setContentView()关联一个布局,如果没有,先创建一个
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="hello world" android:textSize="22sp" /></LinearLayout>
布局文件创建好了之后,我们在activity里面进行视图的绑定
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); }
第四步:在清单文件中对activity进行注册,并且设置为启动activity android四大组件要想能够发挥作用,都必须在清单文件进行注册才行,activity也不例外,现在我们把自己写的activity配置一下
<activity android:name=".MyActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
我们可以看到配置activity的时候需要设置name属性,那么属性值里面的小圆点是什么意思呢?大家可以看到清单文件有一个package属性,小圆点代表的就是这个package的内容,所以activity完整的name应该是"com.lkk.activity.MyActivity" 好,我们已经注册好了,接下来将我们的项目跑起来,运行截图如下:
可以看到我们自己定义的activty就被显示到手机界面上了.
[3]activity之间如何进行跳转?
前面我们说过一个activity相当于一个用户界面,那么我们在使用一些app的时候都知道,一个app都是有多个界面的,那么我们的界面之间是如何进行跳转的呢?现在我们就实现一下页面之间的跳转.actviity的跳转有两种方式:1]显式启动 简单地讲,就是你明确指定了需要跳转到哪个activity的意图2]隐式启动 简单地讲,就是你不明确需要跳转到哪个activity的意图,但是你会指定跳转的activity需要有哪些属性举个例子:你的手机有一部下载好的电影,你需要播放,有两种方法,第一种,打开某个播放器,在里面打开你下载好的电影文件,第二种方法,直接点击电影文件,手机会自动匹配满足播放电影功能的app,如果你的手机安装了两款视频播放器,就会弹出一个选择的界面,第一种方法就类似于显式启动,第二种方式就类似于隐式启动下面我们来看具体代码我们先在activity_my布局文件里把刚才的文本删除掉,添加两个按钮,分别对应显式启动和隐式启动
<?xml version="1.0" encoding="utf-8"?><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:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="click" android:text="显式启动MainActivity" android:textAllCaps="false" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="click1" android:text="隐式启动MainActivity" android:textAllCaps="false" /></LinearLayout>
现在我们去activity_main里面添加一段文本,待会跳转时用来验证是否跳转成功
<?xml version="1.0" encoding="utf-8"?><LinearLayout 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:orientation="vertical" android:padding="8dp" tools:context="com.lkk.activity.MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="这是MainActivity界面" android:textSize="22sp" /></LinearLayout>
添加了一个textview,设置为水平居中,字体大小22sp
首先是显式启动,由于显式启动的特点是知道需要启动哪个activity,所以显式启动用法简单,多用于app内部的activity跳转
public void click(View view) { //构建intent对象,指向需要启动的activity类 Intent intent = new Intent(this, MainActivity.class); //启动activity startActivity(intent); /*Intent intent1 = new Intent(); intent.setClass(this, MainActivity.class); startActivity(intent1);*/ }
实现按钮的onclick方法,两种写法都是一样的,运行程序效果如下
点击显式启动MainActivity按钮
显式跳转就是这么简单
接下来是隐式跳转,启动app的时候,就是根据隐式跳转来决定我们启动哪一个activity作为起始界面
我们来看一下清单文件里面的
<activity android:name=".MyActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
这里设置的是action为main,category设置为启动器,只有这样,才能匹配为启动activity
我们要使用隐式启动一个activity,那么这个activity就必须配置,接下来我们为MainActivity手动配置一个
<activity android:name=".MainActivity"> <intent-filter> <action android:name="MainActivity"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity>
其实还有其他的属性可以配置,但不是必须的,这两项是必须配置的,接下来我们通过,隐式启动来启动MainActivity
接下来在activity里面实现监听方法
public void click1(View view) { Intent intent = new Intent("MainActivity"); startActivity(intent); /*Intent intent1 = new Intent(); intent1.setAction("MainActivity"); startActivity(intent1);*/ }
这里可能有人发现了,我们在清单文件里有两个属性,为什么这里只匹配了一个属性呢?那是因为categroy属性是默认帮我们设置好的,所以我们在Activity里不需要再进行配置,但需要注意的是,默认帮我们设置的是”android.intent.category.DEFAULT”,所以当我们的值设置的不是默认情况,是需要进行匹配的.当然category一般情况下都是设置为默认值.
运行结果和上面是一样的
好了,activity的跳转就介绍完了.
今天是第一次写博客,写得很粗糙,希望大家多多指正,谢谢.
- Activity入门
- activity生命周期基础入门
- Android入门之Activity
- Android入门:Activity生命周期
- Android入门之Activity
- Android入门:Activity生命周期
- Android入门:Activity生命周期
- activity启动的入门
- Activity入门(一)
- 【Android】Activity入门
- Activity入门(二)
- Android 入门----Activity生命周期
- Activity入门指南
- Activity的入门
- 第四讲:Activity入门指南
- 第四讲:Activity入门指南
- Android入门/Activity生命周期(三)
- (三)Activity入门指南
- iOS学习笔记33-UICollectionView入门
- 【原创】一种实现IBM MQ通道传输能力垂直扩展的方法 - An Approach for Scaling Up/Down IBM MQ Channel Throughput
- xcode项目导入github
- 中文 iOS/Mac 开发博客列表
- leetcode 290:Word Pattern
- Activity入门
- ajax 封装
- for each循环使用说明
- 【机器学习】Matlab中实现QQ-plot的一个好工具gqqplot
- Request异步请求处理PART2
- shell中的循环结构
- Python中的字典(dict)
- ffmpeg工作流程分析-3
- 数据结构和算法目录表