上一篇寫了Activity的生命週期,這方面的知識在咱們平常開發的時候常常會用到。一樣的這篇也寫一些基礎的知識。android
Activity跳轉配合Intent實現,在將跳轉以前,先了解一下如何給Button設置監聽事件。比較關鍵的就是給Button設置一個id,佈局文件以下:api
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.isdust.zor.view_learn.activity.FirstActivity"> <Button android:id="@+id/jump" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
在上面的佈局中,給Button設定了一個id位jump,在activity代碼中首先要得到這個控件。app
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_first); Button jump = findViewById(R.id.jump); }
在onCreate方法中的setContentView就是將佈局文件和Activity綁定在一塊,得到控件的api就是findViewById。
得到到控件以後,須要作的就是設置監聽事件,對應的api方法就是setOnClickListener。ide
jump.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { } });
到這裏監聽事件也設置完成了,那麼就能夠進行Intent跳轉的學習了。Intent的跳轉有兩種實現方式:佈局
顯示跳轉:
顯示跳轉中須要作的就是肯定當前Activity的Context和須要跳轉的Activity的class學習
Intent intent = new Intent(); intent.setClass(FirstActivity.this,SecondActivity.class) startActivity(intent);
隱式跳轉
隱式跳轉首先要給須要跳轉的activity設定一個action,而後在Intent中傳入這個action,那樣就能夠直接跳轉到對應的Activity。
首先設置action,這個就是在配置文件AndroidManifest.xml中配置this
<activity android:name=".activity.SecondActivity"> <intent-filter> <action android:name="view_learn" /> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity>
這個地方主要是配置了兩個intent-filter的子項目,一個action,一個category。配置好這個,就能夠在activity中配置intent。code
Intent intent = new Intent(); intent.setAction("view_learn"); startActivity(intent);
這樣就能夠完成跳轉了。xml
FirstActivity生命週期
public class FirstActivity extends Activity { private Button jump; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_first); jump = findViewById(R.id.jump); jump.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(); intent.setAction("view_learn"); startActivity(intent); // intent.setClass(FirstActivity.this,SecondActivity.class) startActivity(intent); } }); } }
SecondActivity
public class SecondActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); } }
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.isdust.zor.view_learn"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> </activity> <activity android:name=".activity.FirstActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".activity.SecondActivity"> <intent-filter> <action android:name="view_learn" /> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity> </application> </manifest>
到這裏,跳轉就介紹的差很少了,下一章就詳細介紹一下Intent。