プロジェクションマッピング

エンターテインメントから工業利用まで、プロジェクションマッピングの活用・運用をお考えの方へ

more

インタラクティブ&サイネージ

情報表示用のデジタルサイネージから、センサーを利用したインタラクティブ要素などをお考えの方へ

more

VR/360MOVIE

VRHMD用コンテンツからプラットフォームを利用した360度ムービーを活用したPRをお考えの方へ

more
CONTACT 052-253-9866

【Android Studio】intentでのページ遷移を行う!

2014.05.25 日曜日 12:56:02

IMG_3578_rt_02

Androidのアプリで別ページへの遷移を表現するための方法として、intentを使ったものがあります。
intentとは、Androidアプリと別のAndoroidアプリとの接続を行ったり、アプリ内でのページ同士の接続の際に使う機能のことを指すようです。

今回は、intentを使用したページ遷移の方法について調査を行いました。

Activityを作成

まず、ページ遷移後の画面を追加します。
Android Studioの画面左「Project」の中のapp→src→main→java で右クリックし、
new→Activty→Blank Activity を選択します。

スクリーンショット 2014-05-25 12.24.43

今回、遷移後のファイル名は「SubActivity」にしました。その他は以下を参考にどうぞ。

スクリーンショット 2014-05-25 12.25.37

遷移後のActivityの記述

今回は以下のような記述になりました。
onCreate時に作成したactivity_sub.xmlが表示されるようになっています。

package com.example.test_1.app;


        import android.app.Activity;
        import android.os.Bundle;

public class SubActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sub);
    }
}

そのactivity_sub.xmlは以下のように記述してあります。
こちらは単純にTextViewを一つ配置してあるのみです。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="com.example.test_1.app.SubActivity">

    <TextView
        android:layout_height="wrap_content"
        android:text="次のページです!"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:id="@+id/textView1"
        android:layout_width="wrap_content">
    </TextView>

</RelativeLayout>

AndroidManifestoへ追記

続いて、AndroidManifesto.xmlを開き、作成したSubActivityを追加します。
以下を参考に、追記を行ってください。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.test_1.app" >

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.test_1.app.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity
            android:name="com.example.test_1.app.SubActivity"
            android:label="@string/app_name" >
        </activity>

     </application>

</manifest>

MainActivityを編集

遷移前のページ(今回は「MainActivity」という名前にしています)は、以下のようになりました。
ボタンをクリックした際の挙動を関数にして、intentを使ってSubActivityへ遷移を行っています。

package com.example.test_1.app;

import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Button;
import android.view.View.OnClickListener;

public class MainActivity extends Activity implements OnClickListener {
    /** Called when the activity is first created. */

    private Button button_segue;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button_segue=(Button)findViewById(R.id.button_segue);
        button_segue.setOnClickListener(this);

    }

    //ボタンクリック時の関数
    public void onClick(View v) {

        if(v==button_segue){
            Intent intent = new Intent(this, SubActivity.class);
            startActivityForResult(intent, 0);
        }

    }

}

最後に、遷移前のページのxmlファイル「activity_main」に、遷移するためのボタンを配置して完了です。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="com.example.test_1.app.MainActivity">


    <Button
        android:text="次のページへ遷移"
        android:id="@+id/button_segue"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
    </Button>

</RelativeLayout>

起動してみます!

スクリーンショット 2014-05-25 12.49.51

ボタンを押すと…

スクリーンショット 2014-05-25 12.50.08

次のページへ遷移しました!
調べていて後から気づいたのですがiOSアプリと違い、Androidでは遷移することを「segue」と言わないのかもしれません。
まだ調査不足なのですが、その場合は「segue」という言葉は使わない方がわかりやすいですね。

今回参考にさせて頂いたサイトはこちらです。ありがとうございました!
Category:Android , Development , Mac     Tag:
Authorブログの著者について
田中 義弘

田中 義弘

イベントプロダクション・グラフィックデザイナーを経て、2010年3月に株式会社アイデアクラウドを設立。近年、WEBから得た技術をベースに、プロジェクションマッピング事業をはじめとした先端事業をスタート。

Our Business
最近の記事
人気記事
Our Project