EditText クラス( その 10 )

今日から EditText クラスの各種メソッドを見て行きます。

Android Developers -EditText-
http://developer.android.com/reference/android/widget/EditText.html

今日はテキストの省略表示を見てみます。
以下、サンプルです。

public class HelloAndroidActivity extends Activity {
    private final int MP = LinearLayout.LayoutParams.MATCH_PARENT; 
    private final int WC = LinearLayout.LayoutParams.WRAP_CONTENT; 
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);
        setContentView(layout);

        // テキストの省略設定をしているつもり…
        EditText editText1 = new EditText(this);
        editText1.setSingleLine(true);
        editText1.setEllipsize(TruncateAt.MIDDLE);      
        layout.addView(editText1);

        EditText editText2 = new EditText(this);
        layout.addView(editText2);
    }
}

TextView や Button コンポーネントでのテキスト省略表示は、以下の設定が必要でした。
1.setSingleLine メソッドで 1 行表示を強制する
2.setEllipsize メソッドに省略する部分を指定

今回、そのまま試してみたのですが EditText では上手く適用されないようです。
EditText コンポーネントは、フォーカスが当たっているとテキストの編集が可能になって
しまうため、サンプルでは他の EditText にフォーカスを移動できるように 2 つ用意して
みましたが、フォーカスが当たっていなくてもテキスト省略表示は有効にはなりませんで
した。一応、他に設定が無いか調べてみたのですが、見当たらなかったので EditText の
場合は、テキストの省略表示は無いかもしれませんね。