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的跳转就介绍完了.

今天是第一次写博客,写得很粗糙,希望大家多多指正,谢谢.

0 0
原创粉丝点击