EditText流程,是什么决定了虚拟键盘上的操作按钮?

EditText flow, what determines the action button on virtual keyboard?

我有 2 个相同的 EditText:

<EditText        
android:id="@+id/card_num_edit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_weight="1"
android:digits="0123456789"
android:ems="13"
android:inputType="phone"
android:singleLine="true"
android:textSize="14sp"
/>

另外一个:

<EditText
android:id="@+id/phoneRegEdit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_weight="1"
android:digits="0123456789"
android:ems="13"
android:inputType="phone"
android:singleLine="true"
android:textSize="14sp" />

当虚拟键盘出现时,其中一个有一个 "next one" 操作按钮,另一个有一个 "ok" 操作按钮。

"next one" 将焦点传递到下一个 EditText 但 "ok" 什么都不做只是隐藏虚拟键盘。

我的问题是, 什么条件决定显示哪个按钮?在我看来 Android EditText 的焦点流存在巨大缺陷。

由IME_OPTIONsMore info here

完成
<EditText android:id="@+id/some_edittext"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:imeOptions="actionDone"><!-- Here you set whatever option you want -->