テクパー2020
テクニカルヘルパー


 アンドロイドアプリ開発 

◆ テキストボックスの配置

1.新規プロジェクトで 「 ToolsTextbox 」 を新規に作成します

1)ファイル(F) → 新規(N) → プロジェクト(P)

2)Android の Android プロジェクト を選択し、[次へ(N)]ボタン をクリック
・プロジェクト名に 「 ToolsTextbox 」 を入力
・ビルド・ターゲットの □ Android 2.2 を チェック (最新のバージョン)
・アプリケーション名に 「 ToolsTextbox 」 を入力
・パッケージ名に 「 任意のドメイン名 」 を入力 (ドメイン名をパッケージ名に利用)
・□ Create Activityがチェック状態で、名称に 「 ToolsTextbox 」 を入力
・[完了]ボタン をクリック

(プロジェクトの構成)


2.「 ToolsTextbox 」 を書き換え
package com.proto.toolstextbox;

import android.app.Activity;
import android.os.Bundle;
import android.graphics.Color;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.LinearLayout;
import android.view.KeyEvent;
//import android.view.Window;

public class ToolsTextbox extends Activity
                          implements TextView.OnEditorActionListener {

    private final static int MatchParent=LinearLayout.LayoutParams.MATCH_PARENT;
    private final static int WrapContent=LinearLayout.LayoutParams.WRAP_CONTENT;

    // テキストボックス( エディットテキスト)の定義
    EditText editText;
    EditText monitor;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // setContentView(R.layout.main);書き換え

        // ウィンドウタイトルの非表示
        // requestWindowFeature(Window.FEATURE_NO_TITLE);

        // レイアウトの生成
        LinearLayout layout=new LinearLayout(this);
        layout=new LinearLayout(this);
        layout=new LinearLayout(this);
        layout.setBackgroundColor(Color.WHITE);        // 背景色の指定
        layout.setOrientation(LinearLayout.VERTICAL);  // HORIZONTAL, VERTICAL 
        setContentView(layout);

        // テキストの生成
        TextView txtView = new TextView(this);
        txtView.setTextColor(Color.MAGENTA);
        txtView.setTextSize(16f);
        txtView.setText("テキストボックス操作のチェック");
        layout.addView(txtView,
                       new LinearLayout.LayoutParams(MatchParent,WrapContent));

        // テキストボックス( エディットテキスト)の生成
        editText=new EditText(this);
        editText.setTag("single");
        editText.setTextColor(Color.BLUE);
        editText.setTextSize(22f);
        editText.setText("ここには1行入力",EditText.BufferType.NORMAL);
        editText.setSelectAllOnFocus(true);
        editText.setSingleLine();
        editText.setOnEditorActionListener(this);
        layout.addView(editText,new LinearLayout.LayoutParams(220,50));

        editText=new EditText(this);
        editText.setTag("multi");
        editText.setTextColor(Color.BLUE);
        editText.setTextSize(22f);
        editText.setText("ここには複数行入力",EditText.BufferType.NORMAL);
        editText.setSelectAllOnFocus(true);
        editText.setOnEditorActionListener(this);
        layout.addView(editText,new LinearLayout.LayoutParams(280,150));

        monitor=new EditText(this);
        monitor.setTag("monitor");
        monitor.setTextColor(Color.BLACK);
        monitor.setBackgroundColor(Color.CYAN);
        monitor.setTextSize(18f);
        monitor.setText("ここにモニター",EditText.BufferType.NORMAL);
        monitor.setEnabled(false);
        layout.addView(monitor,new LinearLayout.LayoutParams(300,150));
        
    }

    @Override
    // エディットテキストエンターキーの処理
    public boolean onEditorAction(TextView textview, int id, KeyEvent keyevent) {

        // タグ情報の取得
        String tag=(String)textview.getTag();

        // キーコード情報の取得
        //String keyCode=String.valueOf(keyevent.getKeyCode());

        // エディットテキスト情報の取得
        EditText txt=(EditText)textview;
        monitor.setText(txt.getText());
        
        if (tag.equals("single")) {
            monitor.setBackgroundColor(Color.CYAN);
        }else if (tag.equals("multi")) {
            monitor.setBackgroundColor(Color.LTGRAY);
        }

    return false;

    }

}


・機能の説明
public class ToolsTextbox extends Activity
                          implements TextView.OnEditorActionListener  {

implements TextView.OnEditorActionListener の追加
android.view.ViewGroup.LayoutParams のViewGroup.LayoutParamsクラスのコンスタント

MATCH_PARENT : 親画面と同じ大きさ
WRAP_CONTENT : コンテンツに合わせた大きさ
android.widget.LinearLayout のLinearLayoutクラスの生成

public LinearLayout (Context context) 

// レイアウトの向きの指定(HORIZONTAL :水平, VERTICAL:垂直)
  {デフォルトは水平}
public void setOrientation (int orientation) 
android.widget.TextView のTextViewクラスの指定

// 文字色の指定 (色コード)
public void setTextColor (int color) 

// 文字サイズの指定 (サイズ)
public void setTextSize (float size) 

// 文字列の指定 (文字列)
public final void setText (CharSequence text) 

// 文字列選択の指定 (成否)
public void setSelectAllOnFocus (boolean selectAllOnFocus) 

// 1行入力の指定 ()
public void setSingleLine () 

// エンターキーリスナーの指定 (リスナー)
public void setOnEditorActionListener (TextView.OnEditorActionListener l) 
android.widget.EditText のEditTextクラスの生成

public EditText (Context context) 

// 文字列の指定 (文字列,格納バッファータイプ)
public void setText (CharSequence text, TextView.BufferType type) 
android.view.View のViewクラスで指定

// タブの指定(タグ情報)
public void setTag (Object tag) 

// クリック処理の指定(実行のコールバック)
public void setOnClickListener (View.OnClickListener l) 

// レイアウト(配置)の指定(レイアウト情報)
public void setLayoutParams (ViewGroup.LayoutParams params) 
android.widget.LinearLayout.LayoutParams のLinearLayout.LayoutParamsの指定

// 配置パラメータの指定(幅方向,高さ方向)
public LinearLayout.LayoutParams (int width, int height) 
android.widget.TextView.OnEditorActionListener のTextView.OnEditorActionListenerの指定

// リスナーの追加(イベントビュー,アクション識別子,キーコード)
public abstract boolean onEditorAction (TextView v, int actionId, KeyEvent event) 


3.プロジェクトの実行(実行構成の作成は、「プロジェクトの新規作成」を参照)
1)実行(R) → 実行(R)


(上段のテキストボックスに入力でエンター)


(下段のテキストボックスに入力でエンター)


Copyright (C) 2010 プログラミングのテクニックをあなたに!!(リトル・ヘルパー) All Rights Reserved.