當前位置:首頁 » 安卓系統 » android軟鍵盤搜索

android軟鍵盤搜索

發布時間: 2022-08-04 23:20:37

『壹』 如何獲取android的軟鍵盤的顯示狀態

最近項目中有一個編輯框,下面是個ListView。在觸發編輯框彈出軟鍵盤後,ListView還能滑動,並且ListView的item還能響應單擊。這樣的體驗效果很不好。於是便想在滑動或單擊item時判斷鍵盤是否彈出,若彈出,則把它隱藏。
網上一搜,發現Android並沒有直接提供軟鍵盤的彈出與隱藏判斷,一些解決方案諸如判斷父控制項的高度或者判斷

12

if(getWindow().getAttributes().softInputMode==WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN) 隱藏鍵盤;

的方法並沒有用,於是便從官方文檔著手。
發現InputMethodManager有一個方法isActive(View view):如果view是輸入法的活動view,則返回true。也就是說,如果是由view觸發彈出軟鍵盤,則返回true。哇,那問題就好辦了

12

if(isActive(edittext)) 隱藏鍵盤

接著讓另一個view強制獲取焦點,這樣isActivite(ediitext)就為false.
這個方法比較簡單,代碼比較短,也很好理解,希望能夠幫助有需要的人,也不枉費我調試幾個小時的功夫。
附上代碼:

12345678

InputMethodManager inputMethodManager = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);<br>private boolean hideKeyboard(){ if(inputMethodManager.isActive(searchEditText)){<br>//因為是在fragment下,所以用了getView()獲取view,也可以用findViewById()來獲取父控制項 getView().requestFocus();//使其它view獲取焦點.這里因為是在fragment下,所以便用了getView(),可以指定任意其它view inputMethodManager.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); return true; } return false; }

ps:如果是手動彈出鍵盤,getActivity().getCurrentFocus()改成searchEditText.並且手動彈出的鍵盤isActivie()失效,可用標記來判斷.

『貳』 android怎麼點擊空白處吧軟鍵盤消失

程序加入代碼軟鍵盤現: InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); imm.toggleSoftInput(0, InputMethodManager.RESULT_SHOWN); 要讓軟鍵盤消失則代碼: InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); 應用於界面比進入搜索界面或者修改信息等等情況用戶體驗應該自彈軟鍵盤讓用戶主點擊輸入框才彈(用戶進入該界面必更改信息)具體實現種效:[代碼]java代碼 EditText editText.setFocusable(true); editText.setFocusableInTouchMode(true); editText.requestFocus(); InputMethodManager inputManager =(InputMethodManager)editText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.showSoftInput(editText, 0);首先要指定輸入框請求焦點調用輸入管理器彈軟鍵盤

『叄』 android設置默認輸入法,彈出軟鍵盤時

沒有默認數字的了-_-, 只是英文/中文, 可以的是在瀏覽器地址搜索框里,有的可以設置吧

『肆』 如何獲取android的軟鍵盤輸入字元

有個方法可以做到在view中有個方法時onKeyPreIme,你去寫個MyEditText去繼承EditText,然後override這個方法,這樣你就可以獲得軟鍵盤的按鍵消息了,記得在你處理了不需要過濾的key後返回false

『伍』 安卓開發怎麼把軟鍵盤的換行變成搜索

需要多試幾次,不過不是太靈,我一般都是換個輸入法再換行,然後再切換過去。

『陸』 android軟鍵盤右下角改成搜索有幾種方式

給編輯框控制項添加這個屬性: android:imeOptions="actionSearch" 但是具體右下角的按鈕會顯示什麼跟你使用的輸入法有關。

『柒』 android自定義軟鍵盤支持多語言

支持。android自定義軟鍵盤支持阿拉伯語、英語、德語、義大利語、漢語、葡萄牙語和西班牙語等,還支持用各種新語言搜索表情符號的能力。

『捌』 Android如何讓軟鍵盤出現和消失

在程序中加入以下代碼時,軟鍵盤會出現: InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); imm.toggleSoftInput(0, InputMethodManager.RESULT_SHOWN); 如果要讓軟鍵盤消失,則為以下代碼: InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); 很多應用中對於一個界面比如進入搜索界面或者修改信息等等情況,為了用戶體驗應該自動彈出軟鍵盤而不是讓用戶主動點擊輸入框才彈出(因為用戶進入該界面必然是為了更改信息)。具體實現這種效果如下:[代碼]java代碼 EditText editText.setFocusable(true); editText.setFocusableInTouchMode(true); editText.requestFocus(); InputMethodManager inputManager =(InputMethodManager)editText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.showSoftInput(editText, 0);首先要對指定的輸入框請求焦點。然後調用輸入管理器彈出軟鍵盤。

『玖』 android 怎樣監聽軟鍵盤關閉

我們在android手機上面有時候會遇到監聽手機軟鍵盤按鍵的時候,例如:我們在瀏覽器輸入url完畢後可以點擊軟鍵盤右下角的「GO」按鍵載入url頁面;在點擊搜索框的時候,點擊右下角的search符號鍵可以進行搜索;或者在全部數據輸入完畢後,點擊右下角的"done"就馬上進行下一步操作。




function 1:
重寫Activity的dispatchKeyEvent(KeyEvent event)方法,在其中監聽KeyEventKey.KEYCODE_ENTER鍵(右下角確定鍵),當此鍵按下的時候,隱藏輸入法軟鍵盤,設置edittext內容和載入webview內容。
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if(event.getKeyCode() == KeyEvent.KEYCODE_ENTER){
/*隱藏軟鍵盤*/
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if(inputMethodManager.isActive()){
inputMethodManager.hideSoftInputFromWindow(MainActivity.this.getCurrentFocus().getWindowToken(), 0);
edittext.setText("success");
webview.loadUrl(URL);
return true;
return super.dispatchKeyEvent(event);
}
function 2:
重寫dispatchKeyEvent(KeyEvent event)的方法感覺有點用牛刀的感覺,因為我們非常可能在這個方法中進行其他任務,所以我們可以使用OnKeyListener的方法來監聽軟鍵盤按鍵。
private OnKeyListener onKeyListener = new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_ENTER){
/*隱藏軟鍵盤*/
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if(inputMethodManager.isActive()){
inputMethodManager.hideSoftInputFromWindow(v.getApplicationWindowToken(), 0);
edittext.setText("success");
webview.loadUrl(URL);
return true;
return false;
};
edittext.setOnKeyListener(onKeyListener);
function 3:
第三種方法我認為可以幫助程序員更精確的判斷右下角按鍵情況,以便應對更加復雜的情況。它可以幫助程序員依據當前郵件下為「GO」,「done」,「search」鍵的情況下做出更細分的操作。
edittext.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
/*判斷是否是「GO」鍵*/
if(actionId == EditorInfo.IME_ACTION_GO){
/*隱藏軟鍵盤*/
InputMethodManager imm = (InputMethodManager) v
.getContext().getSystemService(
Context.INPUT_METHOD_SERVICE);
if (imm.isActive()) {
imm.hideSoftInputFromWindow(
v.getApplicationWindowToken(), 0);
edittext.setText("success");
webview.loadUrl(URL);
return true;
return false;
});

『拾』 android textinputedittext 軟鍵盤怎麼設置搜索按鈕

TextInputLayout是一個用於在EditText上顯示Floating效果的輔助控制項。
效果圖如下:

2.使用方法

import android.content.Context;
import android.os.Bundle;
import android.support.design.widget.TextInputLayout;
import android.support.v7.app.AppCompatActivity;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.MotionEvent;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;

import butterknife.Bind;

熱點內容
s9存儲縮水 發布:2025-01-19 20:08:06 瀏覽:334
2b2t的伺服器編號是什麼 發布:2025-01-19 19:58:55 瀏覽:873
androidstudio下載與安裝 發布:2025-01-19 19:58:14 瀏覽:559
拉鉤演算法 發布:2025-01-19 19:58:14 瀏覽:865
python中讀取文件 發布:2025-01-19 19:37:26 瀏覽:368
網吧電腦連接到steam伺服器錯誤 發布:2025-01-19 19:37:17 瀏覽:601
mc怎麼在別人的伺服器開創造 發布:2025-01-19 19:37:16 瀏覽:70
visual怎麼編譯 發布:2025-01-19 19:36:03 瀏覽:83
c語言tchar 發布:2025-01-19 19:27:07 瀏覽:36
android設備搭建伺服器 發布:2025-01-19 19:20:25 瀏覽:24