ボタンでは、イベントハンドラをmain.xmlファイルのonClickで指定しましたが、ソースからイベントハンドラを登録することもできます。
mButton = (Button)findViewById(R.id.Button01);
// クリックされた時のリスナーを設定
mButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
((Button)v).setText("Clicked!");
}
});
ちなみにButtonコントロールを使用する時は「import android.widget.Button」でボタンコントロールを、OnClickListenerを使用する時は「import android.view.View.OnClickListener」でクリックリスナーをインポートする必要があります。
2010年10月31日日曜日
ボタン
ボタンは、画面構成ファイルであるmain.xmlに以下のようにタグを指定し、コードにボタン押下時の処理内容を記述します。
<Button android:onClick="button01ClickHandler" android:text="@string/hello" android:id="@+id/Button01" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
Buttonタグはその名の通り、ボタンを配置するタグです。
onClickはボタンを押した時のイベントを指定します。
textはボタンに表示する文字列を指定します。上の例の場合、"@string/hello"となっていますが、リソースファイルからhelloという名前を持つ文字列を取り出すための指定子です。
リソースファイルはstrings.xmlというファイル名で、以下のようになっています。
<string name="hello">Hello World, MainActivity!</string>
上の例の場合、リソースファイル(strings.xml)から「Hello World, MainActivity!」という文字列が取り出されるので、ボタンには「Hello World, MainActivity!」という文字列が表示されます。
id="@+id/Button01"というのは、処理からmain.xmlファイルを参照する時に、どのコントロールを取得するかのIDです。以下はコントロール取得時のソースコードの例です。
mButton = (Button)findViewById(R.id.Button01);
・
・
・
public void button01ClickHandler(View v) {
((Button)v).setText("Button01 Clicked");
}
「findViewById」でコントロールの取得を指定します。
R.id.Button01というのが、画面のレイアウトファイル(main.xml)からButton01というIDを持つコントロールを取得する指定です。
下段に「button01ClickHandler」というメソッドがありますが、これがボタンが押された時のイベントハンドラです。
<Button android:onClick="button01ClickHandler" android:text="@string/hello" android:id="@+id/Button01" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
Buttonタグはその名の通り、ボタンを配置するタグです。
onClickはボタンを押した時のイベントを指定します。
textはボタンに表示する文字列を指定します。上の例の場合、"@string/hello"となっていますが、リソースファイルからhelloという名前を持つ文字列を取り出すための指定子です。
リソースファイルはstrings.xmlというファイル名で、以下のようになっています。
<string name="hello">Hello World, MainActivity!</string>
上の例の場合、リソースファイル(strings.xml)から「Hello World, MainActivity!」という文字列が取り出されるので、ボタンには「Hello World, MainActivity!」という文字列が表示されます。
id="@+id/Button01"というのは、処理からmain.xmlファイルを参照する時に、どのコントロールを取得するかのIDです。以下はコントロール取得時のソースコードの例です。
mButton = (Button)findViewById(R.id.Button01);
・
・
・
public void button01ClickHandler(View v) {
((Button)v).setText("Button01 Clicked");
}
「findViewById」でコントロールの取得を指定します。
R.id.Button01というのが、画面のレイアウトファイル(main.xml)からButton01というIDを持つコントロールを取得する指定です。
下段に「button01ClickHandler」というメソッドがありますが、これがボタンが押された時のイベントハンドラです。
Android開発の基本
Androidはメインになる画面構成をXMLで定義し、画面を操作した時の動作をJava等で組み込みます。
ここら辺の仕組みはSilverlightと同じです。というか、仕組み自体のアイデアはこちらが先でしょうか。
ちなみにSilverlightは画面構成をXAMLというXMLの一種で定義して、C#等の.Net言語で処理を実装します。
ここら辺の仕組みはSilverlightと同じです。というか、仕組み自体のアイデアはこちらが先でしょうか。
ちなみにSilverlightは画面構成をXAMLというXMLの一種で定義して、C#等の.Net言語で処理を実装します。
Androidって何?
Androidとは、Google社が開発したOSの名前です。
AppleのiPhon OSであるIOSに対抗心丸出しで出てきました。
IOSと異なり、自由度は抜群に高く、どのハードウェアでもAndroid OSが稼働していればそれはAndroid端末です。
カーネルはLinuxだそうです。開発は今のところJavaが主流で、一部ネイティブC等でも開発は可能なようです。
開発環境はLinux、Windows、Mac OSのどれでもできます。
基本Javaなので、JavaのSDKやAndroid SDK、Eclipse等の統合開発環境が必要です。
筆者は基本的にC,C++,C#系の開発者なので、不慣れな所がありますが温かく見守って頂けると嬉しいです。
AppleのiPhon OSであるIOSに対抗心丸出しで出てきました。
IOSと異なり、自由度は抜群に高く、どのハードウェアでもAndroid OSが稼働していればそれはAndroid端末です。
カーネルはLinuxだそうです。開発は今のところJavaが主流で、一部ネイティブC等でも開発は可能なようです。
開発環境はLinux、Windows、Mac OSのどれでもできます。
基本Javaなので、JavaのSDKやAndroid SDK、Eclipse等の統合開発環境が必要です。
筆者は基本的にC,C++,C#系の開発者なので、不慣れな所がありますが温かく見守って頂けると嬉しいです。
登録:
投稿 (Atom)