strings.xmlを確認してもリソースが追加されたのがわかると思います。name="sub_screen">これはサブ画面です。HelloWorld!」と表示されていた部分を「これはメイン画面です」という文字列に変えておきましょう。今度はXMLを直接書き換えてみます。HelloWorld!の文字列を下記のように編集します。name="hello">これはメイン画面です。name="sub_screen">サブ画面です</string></resources>これをResourcesタブの方から確認してみるとこのようになっていれば成功です。文字列の追加がひとまず終了したので、レイアウトから設定する必要があります。一度[res]→[layout]→[hello_sub_screen.xml]を開きます。Text...」をクリックします。Chooserダイアログ」が表示されますので、「sub_screen」を選択して[OK]をクリックします。するとレイアウトに文字列が設定されます。同じ方法で、ボタンにも文字列を設定しましょう。[string.xml]で下記のように設定し、[hello_sub_screen.xml]でボタンに文字列を設定します。Screen設定されました。メイン画面にはサブ画面を呼び出すボタンが必要です。Layoutにてボタンを追加し、[string.xml]に文字列を以下のように設定、[main.xml]に戻りボタンと文字列をつなげましょう。Screen文字列を設定したところです。図のようになれば成功です。2.クラスの作成とコードの追加この状態で、まずボタンや文字列の設定は終了しました。このままでボタンを押したところで何も起こりません。「ボタンを押すとサブ(メイン)画面を呼び出す」というコードを書き加えなければならないのです。最初に[HelloSubScreen.java]の作成、次に[HelloWorld.java]と[HelloSubScreen.java]の編集を行います。コード自体は長くないですし、最初の方はコピーアンドペーストで書き足して構いません。クラス」ダイアログが表示されます。下記のように設定します。.app.Activity[Finish]を押すと[src]フォルダ内に「HelloSubScreen.java」が作成されます。{}このような状態で生成されていると思います。[HelloWorld.java]でXMLレイアウトを設定していたのと同じように、[HelloSubScreen.java]でも先ほど製作した[hello_sub_screen.xml]を設定しましょう!以下のようなコードになります。{super.onCreate(savedInstanceState);setContentView(R.layout.hello_sub_screen);}}これで[HelloSubScreen.java]を開いたときに[hello_sub_screen.xml]が表示されるようになりました。onCreateはアクティビティ起動時に行う処理でしたね。次に[HelloWorld.java]を編集します。[HelloWorld.java]には今のところonCreateでレイアウトが選択されているのみです。ボタンを実際に使うためには、読み込んだレイアウトの中にあるリソースをボタンとして再び定義しなければいけません。そこで使うコードはfindViewById()というコードです。字面を読めばわかるかもしれませんが、これは「()内に指定したid名でView(レイアウト)内のリソースを探す」というコードです。ここで、リソースを追加した際にXMLに記述してあったidの事を思い出してください。ボタンのidはbutton1とされていましたね。実際にはR.id.button1と記述します。これはレイアウトから読み込むのではなくリソースを管理している[R.java]内から読み込むためです。今回は定義したボタンに役割を与えるので、setOnClickListener()というコードも加えます。これはOnClick、つまりボタンがクリックされたときの動作を指定するコードとリソースをつなげるような記述です。()内に直接動作を書くこともできますが、今回は分けて書くことにします。目印のためにbutton1としておきます。以上のコードをまとめると、次のようになります。button1);};.(ドット)でつなぐことと;(セミコロン)を最後に加えることを忘れないでくださいね。次はOnClickListenerの中身を書きこんでいきます。OnClickListenerは今まで編集してきたonCreateとは違う新しいクラスを作ることになります。追加するソースを見てみましょう。);}}最初の行で、button1を指定します。これはonCreateで付けた目印でしたね。OnClickListener()以下のonClickクラスです。新しいアクティビティを呼び出すには、Intentクラスを使います。今回は「intent」という名前で新しく作成しています。Intentの第一引数には呼び出す元のクラス名、第二引数には呼び出す先のクラス名を記述します。引数の方は、自身のクラスを指定しているため、.classではなく.thisと記述しています。最終行では、startActivity()を記述しています。OSにインテントを投げる(=インテントを実行する)ことができます。それでは改めてHelloWorldクラス全体を確認してみましょう。);}}}ところで、BundleやOnClickListenerなどの記述を追加した際、下図のようにコードに赤い波線と左端に電球マークが表示されると思います。赤い波線は基本的にコード段階でのエラーを示します。今回「Intent」や「View」などに波線が表示されているのはクラス名が簡易の方法で記述しているためです。本来クラス名はもっと長いものなのですが、Javaファイルの冒頭に「import」という形であらかじめクラス名を定義することで、実際に呼び出すときに長いクラス名を省略できる仕組みになっています。importせずにアクティビティを実行しても、エラーダイアログが立ち上がってしまい実行させてもらえません。Eclipseには簡単にクラス名をインポートする機能があります。波線がかかっている文字列にマウスカーソルを移動するとそのコードを解決するいくつもの解決策がEclipse側から提示されます。ほとんどの解決策は新しくクラスを作成したり、タイプミス(似たような文字列を教えてくれる)なので文頭が「インポートします」とあるものを選択すれば間違いありません。今回OnClickListenerだけは二種類の「Import」が提示されるので気をつけましょう。今回利用するのは「(.view.View)」というクラス名です。その他の赤い波線で提示されるインポートは一種類ですのでそれを選択すれば大丈夫です。赤い波線がすべてなくなるまで「Intent」や「View」にも同じ作業を続けましょう。ちなみにbutton1の波線はViewをインポートすると同時に解決されます。以上で[HelloWorld.java]の編集は終了しました!最後に[HelloSubScreen.java]の編集です。「findViewById()」「setOnClickListener()」「onClick」などのコードを足します。以下のようになります。);}};}[HelloWorld.java]とほとんど同じコードなのであまり説明は必要ないと思いますが、一点だけ注意するとすれば、Intentの引数HelloWorldとHelloSubScreenが逆になっていますね。以上でコードの編集はすべて終了です!3.AndroidManifest.xmlとは?コードの作業が終わり、いよいよ実行!と行きたいところですが、最後にAndroidManifestというものを編集しなければなりません。端末側にその実行されようとしているアプリケーションの仕様を確認させる役目があります。端末をすでにお持ちで、アプリケーションをマーケットからインストールしたことがある人は分かるあるかもしれませんが、以下のような表示は全てAndroidManifestに記述してあるデータによるものです。今回は新しいアクティビティを作成したので、その旨をAndroidManifestに登録しなければなりません。AndroidManifest.xmlを開き、下のタブより「アプリケーション」タブを選択します。するとHelloWorldがアクティビティとして登録されているのがわかりますね。ここにHelloSubScreenも追加します。Application.」のチェックボックスをクリックして、下の一覧から[Activity]を選択します。左の欄に[Activity]が追加されました。右側の[Name]の[参照...]を押すとダイアログが出てきますので、「HelloSubScreen」を選択して[OK]を押しましょう。左の欄に「HelloSubScreen」が登録されていれば完了です!4.いよいよ実行!それでは実行してみましょう。Screen]ボタンを押すことによって互いにアクティビティを呼び出すことができることを確認出来れば、今回の作業はすべて成功です!いかがでしたでしょうか?リソースの作成、文字列の作成、クラスの作成と基本的なことはほとんど今回の章で勉強できたと思います!今後はカメラやセンサーを使ったアプリケーションの記事が追加されていく予定ですので楽しみにしていてくださいね!お疲れさまでした!今回コラムで使用したプログラムはこちらからダウンロード出来ます。本コラム内で提供する情報のご利用は、利用者ご自身の責任において行われるものとします。保証するものではありません。当社は、利用者がこれらの情報をご利用になったこと、またはご利用になれなかったことにより生じたいかなる損害についても責任を負いません。本コラムで提供される各種情報に関し、利用者と他の利用者あるいは第三者と紛争が生じた場合、利用者は自己の費用と責任においてこれを解決するものとし、当社に損害を与えないものとします。当社は、本コラムに掲載する情報の全部又は一部を予告なく変更する場合がございます。本コラムの運用を休止または停止する場合がございます。当社は、理由の如何を問わず本コラムの提供が遅延し、または中断したことに起因して利用者または第三者が被った被害について、一切の責任を負いません。コンピューター環境その他の理由により、本コラムが正常にご利用できない場合がございます。公開日時点のものであり、団体・サービス・ツール等の名称が変更されることがあります。登録してみよう>>TOPへ会社案内プレスリリース災害用伝言版サービスサイト。