2016-05-23 140 views
1

我有一個問題:我單擊EdditText但鍵盤不出現。我不知道我怎麼能解決這個問題:EditText Android Studio鍵盤

et_num.setText (et_num.getText()); 

     et_num.setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       et_num= (EditText) findViewById(R.id.et_num); 
       et_num.requestFocus(); 
       InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
       imm.showSoftInput(et_num, InputMethodManager.SHOW_IMPLICIT); 
       //InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
       imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY); 

       return false; 
      }; 

     }); 
+0

通常你不需要自定義觸摸監聽器,使鍵盤出現,你能提供更多的信息關於你的用例? – Egor

+0

您是否在使用模擬器?如果仿真器配置爲具有物理鍵盤(例如,您的計算機鍵盤),則它不會在屏幕上顯示軟鍵盤。 – cyroxis

+0

Egor:我在Android手機上嘗試了這款應用程序,軟鍵盤沒有出現。對不起,拼寫錯誤 – Arnau

回答

0


這可重點關注的一個問題,在您的EditText。只需在您的應用xml佈局文件中的EditText後添加<RequestFocus />即可。
例子:

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 
<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/et_num" 
    android:hint="0" 
    android:inputType="number" 
    android:focusableInTouchMode="true" 
    android:focusable="true" /> 
    <requestFocus /> 

另外,作爲@cyroxis說,如果你使用的是仿真器與鍵盤,你必須配置設備的設置,使用軟,在API 23定製手機剛Tab鍵兩次在屏幕上會顯示一個圖標,只需觸摸並出現軟鍵盤。

此外,您可以製作一個公共方法來隱藏鍵盤失去焦點。

public void hide_board() 
{ 
    InputMethodManager im=(InputMethodManager)this.getSystemService(Context.INPUT_METHOD_SERVICE); 
    im.hideSoftInputFromWindow(b_calcula.getWindowToken(), 0); 
} 

希望它有幫助。

0

讓你的鍵盤可見

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

否則你可以在清單設置也

android:windowSoftInputMode="stateAlwaysVisible"