簡體   English   中英

在EditText中輸入數字后,下一個按鈕鍵盤會自動將用戶帶到另一個EditText

[英]After inputting number in EditText, next button keyboard takes user to a different EditText automatically

制作一個簡單的卡路里轉換器。

這是圖片中的問題。

我正在使用Genymotion模擬器。

這是我遇到問題的屏幕部分: 在此處輸入圖片說明

當我單擊EditText數字字段時,數字鍵盤出現 在此處輸入圖片說明

但是,我必須單擊下一個箭頭,將我帶到下一個輸入字段 在此處輸入圖片說明

在我終於可以離開數字鍵盤之前。

這是怎么回事? 在一個編輯文本中輸入數字后,我希望它在此處結束,而不是跳到下一個編輯文本。 另外,這很奇怪,因為如果我在兩個底部的EditText中輸入數字,它們將立即結束,而如果我在頂部的EditText中輸入一個數字,它們會將我帶到底部的EditText之一。

這是XML文件。

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="number"
        android:ems="10"
        android:id="@+id/editText2"
        android:layout_below="@+id/imageView2"
        android:layout_alignEnd="@+id/imageView2"
        android:layout_alignStart="@+id/imageView2" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="number"
        android:ems="10"
        android:id="@+id/editText3"
        android:layout_alignBottom="@+id/editText2"
        android:layout_alignEnd="@+id/imageView4"
        android:layout_alignStart="@+id/imageView4" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="number"
        android:ems="10"
        android:id="@+id/editText4"
        android:layout_marginBottom="32dp"
        android:layout_alignParentBottom="true"
        android:layout_alignStart="@+id/imageView5"
        android:layout_alignEnd="@+id/imageView5" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="number"
        android:ems="10"
        android:id="@+id/editText5"
        android:layout_alignTop="@+id/editText4"
        android:layout_alignStart="@+id/imageView3"
        android:layout_toStartOf="@+id/editText2" />

謝謝!!!

如果要跳過下一個字段,則可以使用nextFocusDown屬性在editText自身中提及ID。

嘗試這個....

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:inputType="number"
            android:ems="10"
            android:id="@+id/editText2"
            android:layout_below="@+id/imageView2"
            android:layout_alignEnd="@+id/imageView2"
            android:layout_alignStart="@+id/imageView2" 
            android:nextFocusDown="@+id/editText3"/>

當您想要在SoftKeyboard上的特定視圖上顯示完成時,請使用android:imeOptions =“ actionDone”屬性。

將ime選項設置為您的EditText:

 <EditText
    android:imeOptions="actionDone"
    ... />

您可以從各種選項中進行選擇。 請參閱文檔: http : //developer.android.com/reference/android/widget/TextView.html#attr_android : imeOptions

真正處理按下下一個(輸入)鍵時發生的情況的唯一方法是,使它的偵聽器告訴它根據應用程序的當前狀態做什么。

final EditText edittext = (EditText) findViewById(R.id.edittext);
edittext.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 key press
          return true;
        }
        return false;
    }
});

要選擇一個編輯文本,您需要像這樣聚焦它:

editText.requestFocus();

簡單的解決方案是添加:

android:imeOptions="actionNext"
android:nextFocusDown="@+id/..." <!--Obviously with the next edittext ID--

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM