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