P123.レイアウト用XMLファイルを使わない方法

Android開発に関するメモランダム

カテゴリー: 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 + "!");
   }


}


週間人気ページランキング / 2-16 → 2-22
順位 ページタイトル抜粋 アクセス数
アクセスが、ありませんでした! 0
2025/2/23 1:01 更新
指定期間人気ページランキング / 1970-1-1 → 2025-2-22
順位 ページタイトル抜粋 アクセス数
アクセスが、ありませんでした! 0
2025/2/23 1:01 更新