画面をつくる その2
前回からちょっと時間が経ってしまいましたが、画面の方を作っていこうと思います。
Viewクラスを継承したサブクラスを作成
今回参考としている本では、「View」クラスを継承したサブクラスを使って画面を作っていくとあるので、それに習ってプログラムをしていきます。
前回、クラスまでは作成したのでその中身を作っていきたいと思います。
エラー発生
本に書いてある内容を打ち込んで、実行してみるとエラーが発生してしまいました。
activity_main.xmlでエラーが発生していて、エラー内容は以下の通りです。
Resource id cannnot be an empty string (at 'id' with vakue '@+id/')
特にこのファイルは編集していないはずなのですが、何か設定が必要なのでしょうか?empty stringとあるので何か「@+id/」の部分に何か値を入れないと行けないのではないかと推測できます。
activity_main.xml
<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=".MainActivity"
android:id="@+id/">
<TextView
android:text="@string/hello_world"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/" /></RelativeLayout>
赤字の部分でエラーが起きている。
でも、何を入れれば良いのだろう?
activity_main.xmlって何だろう?
そもそも、「activity_main.xml」が何なのかが良く理解できていないので、調べてみると、これは画面レイアウト用のファイルみたいです。
詳しい内容は後で調べるとして、「android:id="@+id/"」の部分に何をいれればいいのかをまず調べてみたところ、idなので任意につけて良いみたいですが、後でわかりやすい名前にしたほうが良さそうです。
今回は下記の赤字部分の様に設定してみました。
<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=".MainActivity"
android:id="@+id/main" >
<TextView
android:text="@string/hello_world"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/text1" /></RelativeLayout>
実行してみる
エラー箇所も修正したので、早速実行してみます。
今度は無事実行できるようになりました。
といっても、ただ単に白い画面を表示させただけなのですが・・・
ここまで来るだけで3時間ほど掛かってしまいました。
今日のメモ
クラスってなに?
ざっくりいうと、オブジェクトを生成するための雛形ということみたい。
雛形があることで、同じようなプログラムを毎回一からつくる必要がなくなり手間が省けるという用に理解したのですが、あっているのかな?
androidでの開発はjavaの知識が必要なので、後でもっと詳しく調べてみることにします。参考としている本に書いていある言葉の意味が良く理解できなくて、時間ばっかり掛かってしまいます。
この本読むだけで本当に、中学生はandroidの開発できるの?
あとで調べること
クラス (もっと詳しく調べる)
オブジェクト
activity_main.xml