2014-10-03 27 views
-1

好吧,我放棄 有沒有辦法來調用用戶的文本輸入(與出現在屏幕上的鍵盤),而不使用XML佈局,所有這些東西像findViewById(R.id .editText1)? 也許某種onEditListener?或這樣的事情...用戶的文本輸入,而不使用XML佈局

+1

爲什麼你不想使用XML? – 2014-10-03 15:24:23

+1

爲什麼你不想使用XML佈局。這是不是試圖通過代碼來執行它使用的佈局,因爲它可以處理像屏幕上的不同的設備更容易的最好的事情,你必須從XML佈局更多的控制和可讀性比嘗試任何其他方式 – Boardy 2014-10-03 15:26:14

+0

進出口創造一些一種自己的引擎,並且已經使所有東西像按鈕,列表框和其他東西只與java沒有佈局,我想結束這種風格,不想結合。 – 2014-10-03 15:26:28

回答

1

我已經找到一種方法來做到這一點。 首先我使用一個SurfaceView(cos itsgonna是一個遊戲項目),並且使它成爲FocusableInTouchMode(true); 然後我setOnKeyListenerto我查看在地方,我需要它:

mContext.getGameView().setOnKeyListener(new View.OnKeyListener() { 
      public boolean onKey(View v, int keyCode, KeyEvent event) { 
       char pressedKey = (char) event.getUnicodeChar(); 
       if(event.getAction() == KeyEvent.ACTION_DOWN){ 
       if(event.getUnicodeChar() == 0){ 
        setName.setTitle(removeLastChar(setName.getTitle())); 
       } else 
       setName.setTitle(setName.getTitle() + (char) event.getUnicodeChar());} 
       return false; 
      } 
     }); 

setName.setTitle只是一個盒子(矩形)在其文本; 然後我創建了一個InputMethodManager:

imm.showSoftInput(mContext.getGameView(), InputMethodManager.SHOW_FORCED); 

當想刪除它使用:

private InputMethodManager imm; 
imm = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE); 

ADN WHN我需要的軟鍵盤我叫它

imm.hideSoftInputFromWindow((mContext.getGameView().getWindowToken()), 0); 

但我做了後所有這些東西,我發現一個不愉快的問題: 它不捕獲西里爾語言事件...任何想法如何得到它?謝謝。

相關問題