Androidの導入
java.lang.Object
→android.view.View
→android.widget.TextView
クラスの定義は上記のようになっており、TextViewクラスはViewクラスのサブクラスとなります。TextViewのコンストラクタは3つ存在していますが、ここではもっとも使用頻度が高い以下のコンストラクタについて御紹介します。
1 | public TextView(Context context) |
引数にはContextクラスのオブジェクトを指定します。(Contextについては後述)
Activityファイル内では、記述しているActivity自体を示すthisを指定します。これは、画面を作成するActivityクラスはContextクラスのサブクラスなので、Activityクラスを継承して作成したクラスは、Contextクラスのサブクラスとなるからです。次の例はjavaファイル内にてTextViewを生成するコードです。
1 2 | TextView textView = new TextView(this); setContentView(textView); |
以下のコードはxmlファイル内にてTextViewを作成し、javaファイル内にて文字や文字列をセットするというものです。
レイアウトxmlファイル
1 2 3 4 5 | < TextView android:id = "@+id/textView1" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:text = "TextView" /> |
復習ですが、1行目のandroid:idにて、そのウィジェットのidを定義しています。ここではtextView1がidとなります。そしてandroid:layout_widthとandroid:layout_heightにて、ウィジェットの幅と高さを決定しています。最後にandroid:text=”TextView”にて、初期状態でウィジェットに表示させる文字列を定義しています。
javaファイル
package com.example.edittext; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView textView = (TextView) findViewById(R.id.textView1); textView.setText("HelloWorld"); } }
ソースコードの14行目でインスタンス化し、15行目で表示させる文字列を指定しています。(ここではHelloWorldとしています。)尚、インスタンス化の段階でxmlファイル内のtextView1と紐づけています。
EditTextはユーザーが入力するテキストフィールドです。
java.lang.Object
→android.view.View
→android.widget.TextView
→android.widget.EditText
クラスの定義は上記のようになっており、EditTextはTextViewクラスのサブクラスとなります。EditTextのコンストラクタは5つ存在していますが、ここではもっとも使用頻度がもっとも高い以下のコンストラクタについて御紹介します。
1 | public EditText(Context context) |
引数にはContextクラスのオブジェクトを指定します。
次の例はjavaファイル内にてEditTextを生成するコードです。
1 2 | EditText editText = new EditText(this); setContentView(editText); |
以下のコードはEditTextをxmlファイル内にて定義し、EditTextに文字や文字列を入力しButtonを押下すると、Toast内に入力した内容が表示されるというものです。