在AndroidManifest.xml文件里,`
<activity android:name=".BaseInfomation">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
android.intent.action.MAIN代表这个活动为主活动。下面添加一个新的活动。
添加新活动
在android studio中点击变成。(在project目录下更接近项目的真实存储环境,而Android是经过IDE转换过的。)依次点击app—>src–>main–>java找到自己存储的包名,在包文件夹右键–>new–>activity,选择合适的模板就能新建一个activity了
通过Intent实现活动之间的转换
Intent有两种使用方法,分别是显示的和隐式的。
首先,如果要在一个活动中打开另一个活动,需要事件来触发,例如在第一个活动中新建一个button,通过button(按钮)的click(点击)事件来转到第二个活动中。button事件的注册可以参见如何使用Button控件
显示使用Intent:在第一个activity中的button事件中添加如下代码:
Intent intent = new Intent(第一个活动的名字.this,第二个活动的名字.class);
context.startActivity(intent);
现在来分析这段代码:
Intent有多个构造函数的重载,我们使用的就是Intent(Context packageContext,Class<?>cls)。第一个参数Context是上下文活动,一般是当前要调用这个函数的类或函数;第二个参数Class是要启动的目标活动。我们new出一个Intent的对象后要使用Activity类中提供的startActivity()方法来启动,参数就是intent.
隐式使用Intent:
现在找到AndroidManifest.xml文件(所有的活动都要在这个文件中注册),app–>src–>main–>AndroidManifest.xml 添加下面代码
<activity android:name=".******">
<intent-filter>
<action android:name="com.example.activitytest.ACTION_START" />
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
其中指明了响应哪个活动,则精确指明了活动能响应的intent可能带有category。只有action和category同时匹配上,才会被响应.
然后再在触发事件中添加:
Intent intent = new Intent("com.example.activitytest.ACTION_START");
startActivity(intent);
现在已经能响应了,并且效果和显示声明是一样的。