禁止弹出软键盘

xiaoxiao2021-02-28  91

在Activity的onCreate方法里调用

getWindow().setSoftInputMode(

WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

五分钟无操作关闭页面

public class BaseUIActivity extends Activity { private Handler h= new Handler(){ public void handleMessage(android.os.Message msg) { //finish(); if(BaseUIActivity.this.isDestroyed()){ return; }else{ LogUtil.i("几分钟内无操作"); finish(); Intent intent= new Intent(BaseUIActivity.this,MainUI.class); startActivity(intent); } }; }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // setContentView(R.layout.activity_base_ui); h.sendEmptyMessageDelayed(1,AppApplication.NOTOUCHTIME); } @Override public boolean dispatchTouchEvent(MotionEvent ev) { // TODO Auto-generated method stub if (ev.getAction() == MotionEvent.ACTION_DOWN) {  LogUtil.i("按下按键"); h.removeMessages(1); h.sendEmptyMessageDelayed(1,AppApplication.NOTOUCHTIME);         }  return super.dispatchTouchEvent(ev); } }

服务永不停止的flag

@Override public int onStartCommand(Intent intent, int flags, int startId) {    flags = START_REDELIVER_INTENT;  //重新启动服务 //    LogUtil.i("重新启动服务");    return super.onStartCommand(intent, flags, startId);   }

禁止edittext自动获取焦点

在父控件加

 android:focusable="true"     android:focusableInTouchMode="true"

点击EditText外关闭软键盘,在Activity里添加

//点击EditText以外的区域隐藏键盘     @Override       public boolean dispatchTouchEvent(MotionEvent ev) {           if (ev.getAction() == MotionEvent.ACTION_DOWN) {               View v = getCurrentFocus();               if (isShouldHideInput(v, ev)) {                   InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);                   if (imm != null) {                       imm.hideSoftInputFromWindow(v.getWindowToken(), 0);                   }               }               return super.dispatchTouchEvent(ev);           }           // 必不可少,否则所有的组件都不会有TouchEvent了           if (getWindow().superDispatchTouchEvent(ev)) {               return true;           }           return onTouchEvent(ev);       }       public  boolean isShouldHideInput(View v, MotionEvent event) {           if (v != null && (v instanceof EditText)) {               int[] leftTop = { 0, 0 };               //获取输入框当前的location位置               v.getLocationInWindow(leftTop);               int left = leftTop[0];               int top = leftTop[1];               int bottom = top + v.getHeight();               int right = left + v.getWidth();               if (event.getX() > left && event.getX() < right                       && event.getY() > top && event.getY() < bottom) {                   // 点击的是输入框区域,保留点击EditText的事件                   return false;               } else {                   return true;               }           }           return false;       }

转载请注明原文地址: https://www.6miu.com/read-75483.html

最新回复(0)