Android,使用Edittext

时间:2010-06-21 13:39:51

标签: java android

我有一些关于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();

        } 

工作?如果不是我如何定义它?

感谢。

2 个答案:

答案 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()才能存储文本。

我还建议您制作所有视图(字段,按钮,图像,等等)成员变量,以便您的引用具有持久性。