Android入門篇(五)Activity跳轉

上一篇寫了Activity的生命週期,這方面的知識在咱們平常開發的時候常常會用到。一樣的這篇也寫一些基礎的知識。android

Activity間跳轉

Button監聽事件初探

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跳轉的學習了。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。

相關文章
相關標籤/搜索