Hello droid! 好きな文字列を表示してみる[androidアプリ開発]
前回は何もコードを書くこともなくHello world!が出たのでなんだかプログラムしてる感じがぜんぜんしなかった(´・ω・`)
前回のプログラムコードはワークスペースの
C:\ワークスペース\Hello world\src\sample\helloworld
という場所に入ってるのでちょっと覗いてみる。
package sample.helloworld; import android.app.Activity; import android.os.Bundle; public class helloworld extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }
ハァ?(´・ω・`)
何かいてあるのかさっぱりわかんないけど、アプリケーションの名前とかを表示するプログラムになってるみたい。
今回はこれに書き加えて、好きな文字列を表示してみよう。
ということで、Hello! Droid! と表示してみる。
まずは前回同様にプロジェクト作成。
この作業はワードとかの「新規作成」をすると白紙の用紙が出てくるみたいなもんなので毎回やる作業。
今回はちゃんとルールに沿って名前とか付ける。
プロジェクトができたらパッケージ・エクスプローラーでソースを開いてみる。
srcフォルダに入ってます。
このままだと前回のプログラムとやることいっしょなので、ここに手を加えてみる。
文字を表示するにはLinearLayoutクラスを使うやり方もあるけど、とりあえず簡単そうなTextViewクラスを使ってみよう。
ここでもうなんちゃらクラスとか意味不明な単語が出てきた(´・ω・`)
Javaのプログラムでキーになるのはクラス、メソッド、コンストラクタ、オブジェクト、インスタンスあたりの単語っぽい気がしてきた。解説サイトみてると毎回出てくるしきっと間違いない。
解説をざっくり読んだ感じだと、クラスは「決まった作業をしてくれるマッシーン」、オブジェクトとインスタンスはそこから出てくる実際の「成果物」みたい。ほんとか?(´・ω・`)
このへんはこれから詳しく勉強するとして、とりあえずTextViewクラスを実際に使ってみるぞ。
まずソースの
setContentView(R.layout.main);
という部分がViewクラスというもので、これがアプリ名とか表示してくれていたみたいなのでこれを消す。
で、表示する文字列をTextViewクラスに作らせる。
TextView _helloDroidText = new TextView(this);
_helloDroidText.setText("Hello! Droid!");
簡単に説明すると、1行目はTextViewクラスで出来上がるオブジェクトを入れる入れ物としてhelloDroidTextというのを用意して、TextViewクラスを呼び出すためにnew TextViewを記述。なんかこのへんは決まり文句らしい。
2行目で実際にhelloDroidTextの中に入れる文字列を記述。
このソースを記述すると、Eclipse上でTextViewに赤の波線が入る。
TextViewクラスを使うためにはimportで組み込まなきゃいけないけど、それがまだなのでEclipseが自動でマーキングしてくれるみたい。
ということでクラスを使うために、importします。
TextViewの後にカーソルを持っていって Ctrl + スペースを押すと自動でインポートしてくれる。
もちろん手作業で
import android.widget.TextView;
と記述してもいい。
これでhelloDroidTextの中にHello! Droid!が入ってるはず。きっと(´・ω・`)
このままじゃまだ下準備ができただけで、実際の画面には表示されない。
画面に描画するには最初に消したViewクラスをもう一度記述する。
setContentView(_helloDroidText);
ということでこんなソースになった。
package jp.ne.so_net.blog.androp.hellodroid; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class Hellodroid extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView _helloDroidText = new TextView(this); _helloDroidText.setText("Hello! Droid!"); setContentView(_helloDroidText); } }
これでとりあえず実行してみる。
わーいできたー(´・ω・`)
トラブル無しで成功しているっぽく見えて実はトラブルが。
何度実行しても前回作った「ハロワ」が出てきやがってですね、パッケージエクスプローラーから削除してもハロワ。
ワークスペースを直接見てみたらハロワのソースがそっくりそのまま残っていやがるので削除して実行してもまたハロワ。
なにこの怨念・・・(´・ω・`)
完全に削除しても出てくるなんてこんなの絶対おかしいよ!
というところで、エミュレータを疑ってみた。
エミュレータが前回起動させたハロワをリジューム状態で保持しているんじゃないか。
ためしにHOMEへ戻って終了、もう一度「Hello!ドロイド君」を動かしてみたところ・・・
わーいできたー(´・ω・`)
前途多難すぎる(´・ω・`)
コメント 0