2016-03-01 118 views
0

我需要我的軟鍵盤總是在上。 這條線似乎是在啓動時做的事情,但是在我按下回車鍵並選中一個值後,它仍然隱藏起來。 在調用該方法後,我嘗試再次放置它,但它沒有幫助。在短版如何在Android上永久顯示軟鍵盤

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); 

結構:

//imports 

public class MainActivity extends AppCompatActivity implements TextWatcher{ 

//global variables 


//stats 
    public void stats() { 
     //loading stats 
    } 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     //on create stuff 

     //never hide keyboard 
     **getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);** 

     //detecting enter 
     editText.setOnKeyListener(new View.OnKeyListener() { 
      @Override 
      public boolean onKey(View v, int keyCode, KeyEvent event) { 
       switch (keyCode) { 
        case KeyEvent.KEYCODE_ENTER: 
         // Enter has been pressed 
         takeTheGuess(v); 
         break; 
       } 
       return false; 
      } 
     }); 
    } 

    @Override 
    protected void onStart() { 
     super.onStart(); 
     stats(); 
    } 

    public void takeTheGuess(View view) { 
     //loading stats 
     stats(); 
     //fixing blank field 
     //checking for errors 

     losowanie(); 

     stats(); 
    } 

    public void losowanie() { 
     Random rand = new Random(); 
     myNumber = rand.nextInt((100 - 0) + 1); 
    } 

    public void informacje(MenuItem item) { 
     //app info 
    } 

    @Override 
    public void afterTextChanged(Editable s) { 
     //safe type 
     //no numbers bigger than 100 
} 
+0

爲什麼你需要永遠顯示鍵盤?使用它的用戶會恨你。我認爲是一個概念問題,而不是編程問題。也許不可能在用戶想要的時候永遠顯示一個沒有選擇隱藏的鍵盤。 –

+0

嗯,我只是測試某事 我希望應用程序的這部分總是有鍵盤,因爲用戶將重複輸入值。 – Dawid

+1

儘量將注意力集中在輸入中以避免隱藏鍵盤,這是我知道**(也許有人可以幫助你)的唯一方法**,但我認爲這是O.S.的安全功能。 –

回答

0

在活動的XML將這個:

android:windowSoftInputMode="stateAlwaysVisible" 

您可以嘗試使用這些代碼,你處理的輸入按鍵之一:

InputMethodManager keyboard = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
keyboard.showSoftInput(v, 0); 

如果您在變量v得到錯誤,請嘗試:

keyboard.showSoftInput((EditText)v, 0); 

另一種方法:

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, 0); 

另一個,這將要求專注於你的ediText再次調用鍵盤:

v.requestFocus(); 
+0

它仍然隱藏:/ – Dawid

+0

請參閱編輯答案。 –

相關問題