【androidアプリ開発 No.15】 スライドパズルを作ろう02

Pocket

前回に引き続きスライドパズルを作成していきます。

前回はスライドパズルのメイン部分を作成しましたので、
今回はアプリ起動後のタイトル画面を作成していきます。

下記の手順で進めていきます。

    • 画面の追加
    • 初期起動で表示される画面の設定
    • 画面の遷移

 

 

画面の追加

新しくタイトル画面を追加します。
新しい画面を追加するにはまず、
/src/jp.ne.hatena.d.failure_engineer.SlidePuzzle配下にクラスを追加します。
追加するクラスはActivityなので、スーパークラスには「java.lang.Activity」を設定します。

f:id:failure-engineer:20111106134904p:image

完了ボタンを押下するとファイルが生成されます。
次に追加した画面のレイアウトも追加します。

res/layout配下にレイアウト用のxmlファイルを追加します。

<?xml version="1.0" encoding="utf-8"?>
  <RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
      <LinearLayout 
        android:layout_height="wrap_content" 
        android:layout_width="wrap_content" 
        android:orientation="vertical" 
        android:id="@+id/linearLayout1" 
        android:layout_alignParentBottom="true" 
        android:layout_centerHorizontal="true" 
        android:layout_marginBottom="165dp">
          <Button 
            android:id="@+id/button1" 
            android:layout_height="wrap_content" 
            android:layout_width="wrap_content" 
            android:text="ゲーム開始"></Button>
      </LinearLayout>
      <TextView 
        android:layout_width="wrap_content" 
        android:id="@+id/textView1" 
        android:layout_height="wrap_content" 
        android:textAppearance="?android:attr/textAppearanceLarge" 
        android:text="3×3スライドパズル" 
        android:layout_above="@+id/linearLayout1" 
        android:layout_centerHorizontal="true" 
        android:layout_marginBottom="116dp"></TextView>
  </RelativeLayout>

クラスとレイアウトを追加しただけだとクラスとレイアウトが紐づいていないので、
追加したクラスのonCreateメソッドの中で、setContentViewメソッドを使用して
クラスとレイアウトの紐付けを行います。

package jp.ne.hatena.d.failure_engineer.SlidePuzzle;

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

public class FirstActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.first);
    }
}

※setContentView(R.layout.first);が紐付けの設定箇所に該当します。

初期起動で表示される画面の設定

先ほど新しく画面を追加しましたが、そのままではアプリを起動したときに、
パズルの画面が表示されてしまいます。
その為、新しく追加した画面を初期起動時に表示されるように設定する必要があります。

起動時の画面を設定するにはルートディレクトリにある「AndroidManifest.xml」を修正します。
今回は新しく作成したActivityを追加し、起動時に追加したActivityを表示させるように設定します。

f:id:failure-engineer:20111106134905p:image

設定を終えてアプリを起動すると追加した画面が最初に表示されるようになります。

画面の遷移

とりあえず、タイトル画面が最初に起動するようになったので、
タイトルにある開始ボタンを押下したときにスライドパズルが表示されるようにします。

画面を遷移させるには「Intent」を使用します。
下記のソースコードのようにボタン押下時にインテントのインスタンス生成を生成し、
「startActivity」で生成したインスタンスの画面を表示させます。

package jp.ne.hatena.d.failure_engineer.SlidePuzzle;

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

public class FirstActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.first);
        setMoveActivity();
    }
    
    
    /**
     * ゲーム開始ボタン押下処理
     * (匿名クラス)
     */
    private void setMoveActivity() {
        Button btn = (Button)findViewById(R.id.button1);
        btn.setOnClickListener(new View.OnClickListener() {
            
            @Override
            public void onClick(View v) {
                // インテントのインスタンス生成
                Intent intent = 
                    new Intent(FirstActivity.this, SlidePuzzleActivity.class);
                
                // メイン画面の起動
                startActivity(intent);
                
            }
        });
    }
}

これでタイトル画面の開始ボタンを押下した時にパズル画面へ遷移するようになります。

次回はアイコンの設定をしたいと思います。



Post Footer automatically generated by Add Post Footer Plugin for wordpress.

びのっち

関東圏で活動しているとてもマイペースなSEです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*