EditText 自動でソフトキーボードが出るのを防ぐ
入力文字種の制限は、inputType属性を指定する。inputType属性は多彩なタイプあるが、その中でも主なものを記載する。
number | 数値入力 | android:inputType="number" |
numberSigned | 符号付の数値入力 | android:inputType="numberSigned" |
numberDecimal | 小数を含む数値入力 | android:inputType="numberDecimal" |
textPassword | パスワード入力 | android:inputType="textPassword" |
textCapCharacters | 大文字で入力する | android:inputType="textCapCharacters" |
例えば、3桁の数値入力の制限をする場合は、次のようになる。
< EditText android:layout_width = "fill_parent" android:text = "EditText" android:layout_height = "wrap_content" android:maxLength = "3" android:inputType = "number" android:id = "@+id/editText1" ></ EditText > |
数値の制限はdigits属性の指定でも可能だ。次の用に指定すると”012+-”の文字のみ入力可能となる。
1
|
android:digits="012+-" |
自動でソフトキーボードが出るのを防ぐ
起動時フォーカスがEDITTEXTに当たったらキーボードがでる。
これは一番下にボタンがあって、それをソフトKBの上に持ち上げるとき
ほかのTEXTVIEW にあてる
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="true"
android:focusableInTouchMode="true"
android:text="TextView">
<requestFocus />
</TextView>
レイアウトを考え
ソフトKBに隠れてもいいものを下、
隠れてはだめなものを上にする。
これは一番下にボタンがあって、それをソフトKBに」かくれる
自動でソフトキーボードが出るのを防ぐ
import android.view.WindowManager.LayoutParams;
public class EditActivity extends Activity {
private static int TARGET_YYYY;
private static int TARGET_MM;
private static int TARGET_DD;
private static int TARGET_WD;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
setContentView(R.layout.edit1);
Intent intent = getIntent();
TARGET_YYYY = intent.getIntExtra("TARGET_YYYY", 0);
TARGET_MM = intent.getIntExtra("TARGET_MM", 0);
TARGET_DD = intent.getIntExtra("TARGET_DD", 0);
}
xml
android:maxLines="2" 表示エリアの改行数
android:maxLength="50" 文字数
EditText edit = new EditText( this ); edit.setFilters( new InputFilter[]{ new InputFilter.LengthFilter(2) } );
入力エリアに初期文字列をセット
フィルターで50文字に制限
//インプットフィルターで字数制限 50文字
InputFilter[] inputFilter = new InputFilter[1];
inputFilter[0] = new InputFilter.LengthFilter(50);
// エディットテキストのテキストを設定
EditText et = (EditText) findViewById(R.id.editText1);
//フィルターセット
et.setFilters(inputFilter);
et.setText(stbtext);
メニュー表示して save cancel 処理
//設定
EditText editText =(EditText) findViewById(id.edittext);
// エディットテキストのテキストを設定します
editText.setText("テスト");
// エディットテキストのテキストを全選択します
editText.selectAll();
// エディットテキストのテキストを取得します
String text = editText.getText().toString();
// EditText の最大行の設定
editText.setMaxLines(1);
// EditText が空のときに表示させるヒントを設定
editText.setHint("This is Hint");
// EditText のカーソル位置を設定
editText.setSelection(3);
// EditText のテキストを取得
String str = editText.getText().toString();