특정 동작을 했을 때, 소프트 키보드를 보여주고 싶을때에 사용한다.
키보드를 제어하려면 InputMethodManager객체를 사용한다.
InputMethodManager는 "android.view.inputmethod"에 존재한다.
이 객체는 activity에서, getSystemService로 구할 수 있으며, 변수는 Context.INPUT_METHOD_SERVICE로 구하여 오면 된다.
키보드를 보여줄때는,
public boolean showSoftInput (View view, int flags, ResultReceiver resultReceiver)
를 사용하고,
키보드를 가릴때는,
public boolean hideSoftInputFromWindow (IBinder windowToken, int flags) 를 사용하면 된다.
예를 들어보자.
[ ImmActivity.java ]
import android.view.inputmethod.InputMethodManager; import android.widget.EditText;
public class ImmActivity extends Activity {
private InputMethodManager imm; private EditText searchTxt;
/** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState, CURRENT_MENU); setContentView(R.layout.main); init(); }
private void init(){ imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); searchTxt = (EditText) findViewById(R.id.search_edittext); }
/** * 키보드를 가림. */ private void hideKeyboard(){ imm.hideSoftInputFromWindow(searchTxt.getWindowToken(), 0); }
/** * 키보드를 보여줌. */ private void showKeyboard(){ imm.showSoftInput(searchTxt, 0); } } |
굉장히 간단한 예제이므로, 별도의 설명이 필요없는…
그냥 위와 같이, init()에서 선언해주고, 필요에 따라서, showKeyboard(), hideKeyboard()를 호출하여 주면 된다는…
설명할 것도 없는 것을 주저리 주저리 적은듯…
+
내가 자주 사용하는 ,hideKeyboard() function
private void hideKeyboard(){
InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
}
'Programming > android' 카테고리의 다른 글
안드로이드란? (0) | 2011.11.16 |
---|---|
볼륨키로 미디어 볼륨만 조정가능하게 하기 (2) | 2011.11.04 |
현재실행중인 액티비티 구하기 (0) | 2011.10.13 |
티스토어 부분 유료화 결제 검수 방법 변경 (0) | 2011.09.25 |
sd카드에 database 저장하기. (0) | 2011.08.18 |