戌印-INUJIRUSHI- (Androidあれこれ)

Androidのプログラミングをメインにしてます。記事に貼られたソースコードはダブルクリックすることで行番号をはずしてコピーすることができます。

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
10

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

レイアウトXMLからウィジェットを取得

レイアウトXMLをViewとして取得したい方はこちらの記事を読んでください。

以下は、レイアウトXML内のウィジェットの取得方法です。

XMLにて配置したウィジェットをソースコード上で取得するには、findViewById(int id) を使用します。
取得したViewは自由に値やレイアウトを変更することが出来ます。
※レイアウトXMLでしか設定できない項目もあります

findViewById の引数である id には、XMLで定義した android:id を設定します。
android:id はプログラムをビルドした時、プロジェクトフォルダの直下にあるgenフォルダ内の R.javaに数値型の定数として自動的に登録され、定数名は、android:id の値から @+id/ を削った部分(以下、リソース名)となります。
リソース名を呼び出すには R.id.[リソース名] を指定します。

実際にレイアウトXMLで定義されたViewをソースコードで取得してみます。

<Button android:text="ボタン1" android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
このXMLに定義されているButtonの場合、リソース名は button1 となります。


public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// レイアウトXMLを設定
setContentView(R.layout.main);
// 設定したレイアウトXMLからButtonを取得
Button button = (Button) findViewById(R.id.button1);
// 取得したButtonの背景色を変更
button.setBackgroundColor(Color.RED);
}
このソースコードでは、レイアウトXMLで定義されたButtonを取得し背景色を赤に変えています。

findViewById で取得されたViewはXMLで定義した型ではなく、親クラスであるView型として取得されます。
そのため、取得したViewを操作する場合にはキャストする必要があります。
※Viewクラスにある機能であればキャストは不要

このように、レイアウトXMLで定義されたViewはソースコード上で取得し、操作することが出来ます。
スポンサーサイト

Comments

Leave a Comment


Body
プロフィール

とむ・やむくん

Author:とむ・やむくん
管理人について

Windows 7 / 64bit
Eclipse 4.2 Juno (日本語パッチ済)

スポンサーサイト
最新トラックバック
検索フォーム
ブロとも申請フォーム
QRコード
QR
Twitter
2013/01/04 19:00 カウント開始

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。