今天在做搜索框的時候、遇到需要獲取焦點之后做一些事情、實現方法也很簡單、那就是綁定OnFocusChangeListener事件、實現 onFocusChange(View v, boolean hasFocus) 方法、第二個參數就是判斷得到焦點或失去焦點、從而實現我得想要的效果、代碼如下:
EditText searchView = (EditText) findViewById(R.id.search_text); searchView.setOnFocusChangeListener(new android.view.View. OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { if (hasFocus) { // 此處為得到焦點時的處理內容 } else { // 此處為失去焦點時的處理內容 } } });
文本框重新獲得焦點方法如下
searchView.setFocusable(true); searchView.setFocusableInTouchMode(true); searchView.requestFocus(); searchView.clearFocus();//失去焦點 searchView.requestFocus();//獲取焦點
EditText et = (EditText) findViewById(R.id.et); et.clearFocus(); et.setFocusable(false);
searchEdit.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub searchEdit.setFocusable(true); searchEdit.setFocusableInTouchMode(true); searchEdit.requestFocus(); Intent intent = new Intent(getActivity(),SearchActivity.class); startActivity(intent); return false; } });