發表文章

目前顯示的是 11月, 2017的文章

Android 在Fragment下控制輸入鍵盤

在Fragment下控制實體返回鍵 在EditTextOverWrite(客制的EditText) 狀態下,會有鍵盤彈出,在這個時候硬體控制權會被系統搶走,因此要加判斷 若該頁面沒有EditText,則無須理會IsKeyboardHidden以及其function Java部分 private EditTextOverWrite editEmailLoginAccount,editEmailLoginPassword; editEmailLoginAccount = (EditTextOverWrite) view.findViewById(R.id.editEmailLoginAccount); editEmailLoginPassword = (EditTextOverWrite) view.findViewById(R.id.editEmailLoginPassword); editEmailLoginAccount.setOnKeyboardHidden(onKeyboardHidden); editEmailLoginPassword.setOnKeyboardHidden(onKeyboardHidden); view.setFocusableInTouchMode(true); view.requestFocus(); view.setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && KeyEvent.ACTION_UP == event.getAction()) { if (IsKeyboardHidden) { IsKeyboardHidden = false; }else { i

Android 返回按鍵的運用

在寫Android 程式的時候,因為使用的是fragment,所以常常會遇到對於返回鍵設定上的問題,原本舊的寫法是在系統端攔截返回鍵(用於沒有fragment返回時不會關掉App),並針對每一個可以返回的頁面來進行設定 但是這種方法曠日廢時,所以就開始上網找別人寫的返回鍵的控制方法,偶然讓我找到了一個很適合我們公司寫法的套件 原始寫法詳情可以看這一篇 两步搞定Fragment的返回键 http://www.jianshu.com/p/fff1ef649fc0 原本以為也是要寫不少東西,但是意外的在匯入他的方法,再稍加改寫後,就達到了我想要的成果 『有返回頁面的時候,返回。當沒有返回頁面的時候,提示再按一次就關閉App』 在gradle加入該方法 compile 'com.github.ikidou:FragmentBackHandler:2.1' 並MainActivity加入下面 /** * 上一次点击返回的时间 */ private long lastBackTime; private long lastBackPress; @Override public void onBackPressed() { if (!BackHandlerHelper.handleBackPress(this)) { if (System.currentTimeMillis() - lastBackPress < 1000) { super.onBackPressed(); } else { lastBackPress = System.currentTimeMillis(); Toast.makeText(this, "再按一次退出", Toast.LENGTH_SHORT).show(); } } } 即可達到我想做的