同一个应用之间Activity的切换,常用显式Intent,就是说可以指定启动的目标类
如下 MainActivity中一个按钮,点击这个按钮可以启动MyAty
MainActivity.java
package com.jkxy.xsintent; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.btnMyAty).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //显示Intent,Intent就是意图的意思,第二个参数代表指定要启动的目标类,可以看到已经是确定的了,所以它就是一个显式的Intent。 startActivity(new Intent(MainActivity.this,MyAty.class)); } }); } }
MyAty.java
package com.jkxy.xsintent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class MyAty extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my_aty); } }
AndroidMainfest.xml 主要是注意,MyAty.java 中 通过 setContentView()设置布局后,需要在清单文件中加上
<activity android:name=".MyAty"> 这句话,MyAty才能正常启动,当然你在AS上新建Activity的时候,IDE已经帮你创建好了,不用担心,但是如果你出于某种需要需要自己手动添加的时候,要特别小心。
<?xml version="1.0" encoding="utf-8"?> <manifest package="com.jkxy.xsintent" xmlns:android="http://schemas.android.com/apk/res/android"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <activity android:name=".MyAty"> </activity> </application> </manifest>