2

假设在 LinearLayout 中我们有两个 EditText。Android系统能够以某种方式判断一个EditText是否是最后一个EditText,因为第一个EditText的软键盘的“Enter”按钮是“Next”,而第二个EditText的软键盘的“Enter”按钮是“完毕”。这是我用来测试 EditText 的代码:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    LinearLayout editContainer = new LinearLayout(this);
    editContainer.setOrientation(LinearLayout.VERTICAL);

    EditText firstEdit = new EditText(this);
    firstEdit.setSingleLine(true);

    EditText secondEdit = new EditText(this);
    secondEdit.setSingleLine(true);

    editContainer.addView(firstEdit);
    editContainer.addView(secondEdit);

    setContentView(editContainer);
}

有人能告诉我如何以编程方式知道 EditText 是否是最后一个吗?当然,我可以遍历整个 LinearLayout,但我想保留这种方法作为最后的手段。

谢谢!!

4

3 回答 3

1

Next/Done 标签使用setImeOptions设置。如果你想查询这个值,你可以试试getImeOptions

于 2012-05-03T20:44:06.903 回答
0

快速简便的方法是为您的视图添加“最后”标签。

EditText secondEdit = new EditText(this);
secondEdit.setSingleLine(true);
secondEdit.setTag('last');

你会得到这个值view.getTag()

于 2012-05-03T20:30:12.250 回答
0

您可以为 EditTexts 提供唯一的 ID,例如:

    mEditText1.setId(1);
    mEditText2.setId(2);

mEditText.getId()然后,您可以通过将其 id ( ) 与 EditText 总数进行比较来检查焦点 EditText 是否是最后一个。

同样,您可以使用setTag()andgetTag()方法。

于 2012-05-03T20:34:12.657 回答