我有一些关于edittext的问题..
我正在尝试在Android上创建登录屏幕。我正在接受用户名和密码,然后将结果发送到另一种方法。我刚才有几个问题......
1)如果我有两个edittext并且用户在两者中输入值然后点击“登录”按钮,我希望按钮获取在2个edittext框中输入的值,转换并将它们保存为字符串然后将它们传递给函数。我不确定我是如何构建这个按钮的。我遇到的问题是把它变成一个字符串我正在做这个..
String user = edittext.getText();
但这似乎不起作用。此外,我不确定Android保存Edittext输入的方式..一旦用户不再开箱即可,它会自动将其保存到字符串中吗?例如...
public boolean onKey(View v, int keyCode, KeyEvent event) {
String user = edittext.getText();
}
工作?如果不是我如何定义它?
感谢。
答案 0 :(得分:3)
您必须订阅按钮的onClick事件, 然后简单地从EditText中获取文本
您无需在EditText的onKey事件上运行代码
(Button) findViewById(R.id.btnName)).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//called when you press the button
String user =((EditText) findViewById(R.id.txtUser)).getText().toString();
String password =((EditText) findViewById(R.id.txtPassword)).getText().toString();
// do the rest of the job
}
});
答案 1 :(得分:2)
基本上这就是你想要做的事情
String userName = "";
String password = "";
EditText userEdit = (EditText)findViewById(R.id.useredit);
EditText passEdit = (EditText)findViewById(R.id.passedit);
Button okButton = (Button)findViewById(R.id.okButton);
okButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
userName = userEdit.getText().toString();
password = passEdit.getText().toString();
}
});
您应该为按钮注册一个点击监听器,并在那里定义其行为,而不是使用onKeyDown(...)
。实际上,您必须在.toString()
之后放置.getText()
才能存储文本。
我还建议您制作所有视图(字段,按钮,图像,等等)成员变量,以便您的引用具有持久性。