检查这是否是LinearLayout中的最后一个EditText?

时间:2012-05-03 20:25:50

标签: android android-layout android-edittext

让我们说在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,但我希望将这种方法作为最后的手段。

谢谢!

3 个答案:

答案 0 :(得分:1)

下一个/完成标签设置为setImeOptions。如果您想查询此值,可以尝试getImeOptions

答案 1 :(得分:0)

快速简便的方法是给你的视图标记'last'。

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

您可以使用view.getTag()

获得此值

答案 2 :(得分:0)

您可以为EditTexts提供唯一ID:

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

然后你可以通过比较它的id(mEditText.getId())和EditTexts的总数来检查聚焦的EditText是否是最后一个。

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