読者です 読者をやめる 読者になる 読者になる

ででりんブログ

写真やプログラミングを中心とした備忘録。

【Android】画面遷移とインテント

プログラミング プログラミング-Android

Androidアプリの画面遷移方法。


インテントの種類

  • 明示的なインテント(Explicit Intents)…実行するアクティビティクラスを指定する方法
  • 暗黙的なインテント(Implicit Intents)…Android OSに任せる方法


以下、サンプルです。
初期画面(FirstActivity)と遷移後の画面(SecondActivity)を用意し、初期画面にはボタン(button)を配置しています。
そして、ボタンを押すと画面遷移します。


基本的な手順は同じでExplicitかImplicitの違いは自分で用意した画面に遷移するか、指定した処理に対する画面(アプリ)をOSに選択させるかのようです。

Explicit Intents

package dederin.explicitintents;

import android.content.DialogInterface;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class FirstActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_first);
        setContentView(R.layout.activity_first);
        Button button = (Button)this.findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){
                // 明示的なインテント
                Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
                startActivity(intent);
            }
        });
    }
}

Implicit Intents

package dederin.implicitintents;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.net.Uri;

public class FirstActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_first);
        Button button = (Button)this.findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){
                Uri uri = Uri.parse("http://www.google.co.jp");
                // 暗黙的なインテント
                // Android OSがURIを開くためのブラウザアプリを自動選択する
                Intent intent = new Intent(Intent.ACTION_VIEW, uri);
                startActivity(intent);
            }
        });
    }
}