2014-03-01 96 views
1

我知道這個問題之前詢問here。但沒有找到解決辦法。下一步,上一步,完成鍵盤上方的按鈕

我想要的是在鍵盤上方有Next,Previous和Done按鈕(我知道它的模擬iphone鍵盤,但我無能爲力)。

像這樣: here

現在我已經試過是::

於是,我花了三個按鈕於一體的佈局和分配財產android:alignParentBottom="true" 並在清單中添加android:windowSoftInputMode="adjustResize"

看起來這樣的:
enter image description here

而我所做的移動,並從使用「下一個」,「前面的按鈕是:

int next=1,prev=1; 
public boolean onTouch(View arg0, MotionEvent arg1){     
      prev=next=1;     
      return false; 
     } 
}); 
edUserName.setOnTouchListener(new View.OnTouchListener(){ 
     public boolean onTouch(View arg0, MotionEvent arg1){ 
      prev=next=2; 
      return false; 
     } 
}); 
edCity.setOnTouchListener(new View.OnTouchListener(){ 
     public boolean onTouch(View arg0, MotionEvent arg1){ 
      prev=next=3; 
      return false; 
     } 
}); 
btnNext.setOnClickListener(new View.OnClickListener(){   
     public void onClick(View arg0) {     
      if(next==1){  
       next++;  
       prev++; 
       edUserName.requestFocus();       
      }else if(next==2){ 
       next++; 
       prev++; 
       edCity.requestFocus(); 
      } 
     } 
}); 
btnPrevious.setOnClickListener(new View.OnClickListener(){ 
     public void onClick(View arg0) {     
      if(prev==2){ 
       prev--; 
       next--; 
       edName.requestFocus(); 
      }else if(prev==3){ 
       prev--; 
       next--; 
       edUserName.requestFocus(); 
      } 
     } 
}); 

這讓我撥弄未來和以前使用的按鈕。

現在的問題::

  1. 我知道它有點髒。請指導是否有更好的方法使用下一個和上一個按鈕來回移動。

  2. 我只想在鍵盤可見時才顯示按鈕,否則就隱藏它們。我怎樣才能做到這一點。?

  3. 「完成」按鈕,我需要隱藏它顯示的鍵盤,爲此我嘗試了這一點,但是,它有時不工作。 :

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

    if(imm != null){

    imm.toggleSoftInput(0, InputMethodManager.HIDE_IMPLICIT_ONLY);

    }

  4. 如何隱藏的建議。

請在這幫我。

謝謝。

+0

[這裏看看(http://stackoverflow.com/a/6220452/2591002) –

+0

嘿,你找到了解決辦法?如果是的話請分享。 –

回答

1

我知道你說這是一個要求,但這些要求是不可能的。首先,沒有回調或方法來檢查或觀察輸入法的可見性。有人會建議一些黑客,但他們只是 - 黑客。你不應該依賴他們。其次,至於你的焦點遍歷,幸運的是Android有很好的內置支持。查看nextFocusDown和TextView/EditText上的類似屬性。在大多數情況下,你甚至不需要指定這些爲Android是在找出適合你的正確的順序相當不錯。如果您需要以編程方式做到這一點,你可以使用requestFocus()方法:

editText.requestFocus(View.FOCUS_DOWN); 

或者您可以使用FOCUS_UP去以前的觀點。編輯:此外,您可以使用屬性inputType =「text | textNoSuggestions」來擺脫大多數輸入法上的建議欄(儘管它們並不是要求尊重它,許多人不這樣做)。

+0

感謝哥們指導.. :) – Dory

相關問題