0

您好,我刚刚编写了一个简单的 android 应用程序,当单击提交按钮并在 log cat 中显示文本时,它确实会收到用户的用户名和密码。

但是我不知道为什么我插入的文本在 Logcat 中显示如下:

06-28 14:58:49.061: W/用户名(858): android.widget.EditText{40cf7a68 VFED..CL ......I. 54,82-264,122 #7f080001 app:id/txt用户名}

06-28 14:58:49.061:W/密码(858):android.widget.EditText{40d02f60 VFED..CL .F....I. 54,190-264,230 #7f080003 app:id/txtPassword}

如果您需要这里的代码是我的代码:

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    
    Button btnLogin = (Button) findViewById(R.id.btnLogin);
    
    final EditText username = (EditText) findViewById(R.id.txtUsername);
    final EditText password = (EditText) findViewById(R.id.txtPassword);
    

    btnLogin.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            Log.w("username", username.toString());
            Log.w("password", password.toString());
        }
    });
 }
}

什么会导致这个问题?

4

2 回答 2

5

你应该使用EditText.getText().toString()

   btnLogin.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            Log.w("username", username.getText().toString());
            Log.w("password", password.getText().toString());
        }
    });

EditText().toString返回对象的字符串表示形式。

于 2013-06-28T15:19:58.333 回答
0

username.toString() 返回名为 username 的 textview 实例的字符串表示形式,而不是用户输入的文本。为此,您需要 username.getText()

希望这可以帮助...

于 2013-06-28T15:21:35.853 回答