カテゴリー:
Android Studio ではじめる Android プログラミング入門 第3版 Android Studio 2対応
閲覧数:433 配信日:2018-03-27 12:01
前提
Androidアプリ作成において、レイアウト用XMLファイルは必須ではない
・別になくても良い
・Androidアプリは、Javaのコードさえ書けば、アプリの全てを完全に記述することが出来る
TextViewをJavaコードで記述するメリット及びデメリット
特徴
・レイアウトファイル未使用
・ウィジェットは、それぞれのクラスをnewで作成して作る
メリット
・ダイナミックに変更できる点
デメリット
・コード量が増大しがち
・レイアウトファイルのように感覚的に作成不可
コード
LinearLayoutのsetOrientation
・ウィジェットを並べる方向を設定
LinearLayout.VERTICAL
・縦に並ぶよう設定
ウィジェットの組み込み
・Activityへの組み込み … setContentView使用
・ウィジェット内への別ウィジェットの組み込み(レイアウトのウィジェットへGUI関係のウィジェットを組み込み) … ウィジェットのaddViewメソッド使用
Clickイベント
・ViewクラスのOnClickListenerというイベントリスナーで処理する
・「ViewクラスのOnClickListenerイベントリスナー」インスタンスを、ウィジェットの「setOnClickListenerメソッド」引数に指定
ウィジェット.setOnClickListener(OnClickListenerインスタンス);
OnClickListenerインターフェース
・Clickイベントの際に呼び出されるonClickというメソッドが1つ用意されている
MainActivity.java
package tokyo.w3c.android0.no_layoutxml;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.TextView;
import static android.view.View.OnClickListener;
public class MainActivity extends AppCompatActivity {
private TextView textView;
private EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
createContent();
//setContentView(R.layout.activity_main);
}
private void createContent(){
final MainActivity activity = this;
// FrameLayout作成
FrameLayout fl = new FrameLayout(this); //引数には利用するViewインスタンス(ここではMainActivityインスタンス)を設定
this.setContentView(fl);
// LinearLayout作成
LinearLayout ll = new LinearLayout(this); //引数には利用するViewインスタンス(ここではMainActivityインスタンス)を設定
ll.setOrientation(LinearLayout.VERTICAL); //ウィジェットを並べる方向を縦に設定
fl.addView(ll);
// TextView作成
textView = new TextView(this);
textView.setText("Your name:");
textView.setTextSize(36.0f);
ll.addView(textView);
// EditText作成
editText = new EditText(this);
editText.setTextSize(24.0f);
ll.addView(editText);
// Button作成
Button btn = new Button(this);
btn.setText("Click");
btn.setTextSize(24.0f);
ll.addView(btn);
btn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View view) {
activity.button_onClick(view);
}
});
}
public void button_onClick(View view){
Editable s = editText.getText();
textView.setText("Hi," + s + "!");
}
}