2012-01-25 114 views
48

我面臨一個問題,我有用戶名&密碼字段的活動,現在當我點擊用戶名鍵盤出現,但沒有下一個按鈕,我不能移動到下一個Edittext控制通過鍵盤在這情況下,鍵盤顯示在輸入它按鈕附接在屏幕快照,增加了其高度,安卓鍵盤在EditText上的下一個按鈕問題

任一項引導我什麼是解決這個問題的(上顯示的EditText下一按鈕)?

任何幫助,將不勝感激 enter image description here

我的代碼

txtUserid = (EditText)findViewById(R.id.txtUserID); 
     txtUserPasword = (EditText)findViewById(R.id.txtPassword); 

     txtUserid.setNextFocusDownId(R.id.txtPassword); 
     txtUserPasword.setNextFocusDownId(R.id.btnLogin); 

回答

29

低於您的你提供的代碼行添加此行:

txtUserid.setOnKeyListener(new OnKeyListener() { 

    public boolean onKey(View v, int keyCode, KeyEvent event) { 
      // If the event is a key-down event on the "enter" button 
      if ((event.getAction() == KeyEvent.ACTION_DOWN) && 
       (keyCode == KeyEvent.KEYCODE_ENTER)) 
      { 
       // Perform action on Enter key press 
       txtUserid.clearFocus(); 
       txtUserPasword.requestFocus(); 
       return true; 
      } 
      return false; 
    } 
}); 

txtUserPasword.setOnKeyListener(new OnKeyListener() { 

    public boolean onKey(View v, int keyCode, KeyEvent event) { 

      if ((event.getAction() == KeyEvent.ACTION_DOWN) && 
        (keyCode == KeyEvent.KEYCODE_ENTER)) 
      { 
       // Perform action on Enter key press 
       // check for username - password correctness here 
       return true; 
      } 
      return false; 
    } 
}); 
+0

謝謝,它已經停止增長的EditText高度,但我仍有沒有辦法移動到下一個editext :( – UMAR

+0

請檢查我的編輯answer.Lines在txtUserid的onKeyListener已經改變。 – Hiral

+0

感謝它的工作! – UMAR

47

在你的佈局,只需設置前三個文本框和的XML屬性爲最後一個。

More Examples

+1

我已經在edittext上使用過它,但我不知道它爲什麼不起作用。 :( – UMAR

+0

第二個鏈接是壞的 – slott

+0

是因爲android的開發者網站是更新..可能是那個原因 –

5

如果您的EditText應該只有1行中,添加屬性android:singleLine="true"你的XML,將刪除回車鍵,並用下一頁/完成按鈕取代它。

+0

沒有它的不是這樣,謝謝你的回覆:) – UMAR

1

只需添加機器人:單線= 「true」 以在佈局XML中的EditText標籤..

+0

單行解決我的問題 –

+0

它已經被棄用了。使用'機器人:MAXLINES =「1」'而不是 – Prabs

95

您的XML添加android:singleLine="true" android:nextFocusDown="@+id/textView2"。 將顯示下一個鍵,並且還將重點放在下一個字段。

+2

這對我的作品,但它可能是需要注意的是,如果你設置的android:imeOptions =「actionNext」,那麼它將覆蓋在這個答案 – user1549672

+2

如果您使用提到的屬性機器人:單線=「真」的手段,本身不夠好鍵盤 – prabu

+2

它爲我的作品時,我也擺脫機器人的'上可見的「下一步」按鈕:imeOptions =「actionNext」' –

2

使用這個屬性:

android:inputType="textPersonName" 
1

只需添加機器人:單線= 「真」,你不需要爲

2

代碼另一種最好的解決辦法是:

android:singleLine="true" 
android:imeOptions="next" 
+0

「next」會產生一個錯誤:「錯誤:(48,45)不允許使用字符串類型(''選項'的值爲'next')。」。它應該是「actionNext」。而android:singleLine =「true」已棄用。改用android:maxLines =「1」。 – jk7

2

添加XML佈局,

在假設

ü要4中的EditText行,以便前三editextüSE低於T,

android:imeOptions="actionNext" 

和最後一個editext u盤

android:imeOptions="actionDone" 

ü添加行,以便添加,您的回覆使用

android:singleLine="true" 
+0

奇怪的是MAXLINES =「1」並沒有對我的銀河4工作,只好用單線=「真」 – user330844

+0

單線=「真」的過時,但其工作的兄弟,, –