フォーカスの移動時の制御
EditTextにフォーカスが移ったとき、フォーカスが外れたときにソフトキーボードを表示、非表示したいことがあると思います。その際にはEditTextのオブジェクトに対してsetOnFocusChangeListenerを設定してやることでフォーカスの移動で動作を制御してやることができます。このときInputMethodManagerオブジェクトを利用することで表示・非表示を行います。
publicvoidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
EditText ed = (EditText)findViewById(R.id.ed);
ed.setOnFocusChangeListener(newView.OnFocusChangeListener() {
@Override
publicvoidonFocusChange(View v,booleanhasFocus) {
InputMethodManager inputMethodManager =(InputMethodManager) getSystemServiceContext.INPUT_METHOD_SERVICE);
// フォーカスを受け取ったとき
if(hasFocus){
// ソフトキーボードを表示する
inputMethodManager.showSoftInput(v,InputMethodManager.SHOW_FORCED);
}
// フォーカスが外れたとき
else{
// ソフトキーボードを閉じる
inputMethodManager.hideSoftInputFromWindow(v.getWindowToken(),0);
}
}
});

