获取edittext值时,我收到了像android.support.v7.widget.AppCompatEditText这样的无效字符串

时间:2016-04-08 15:06:29

标签: java android

这是我的java片段代码

    public class A_AssignExam extends android.support.v4.app.Fragment {
        EditText username;

        @Override
        public void onActivityCreated(Bundle savedInstanceState) {
            super.onActivityCreated(savedInstanceState);
            username=(EditText)view.findViewById(R.id.usernameeditassignexam);
            Log.d("Username------>", ""+username);
    }

我收到以下错误消息

android.support.v7.widget.AppCompatEditText {52750c5c VFED..CL ......I. 0,0-0,0 #7f0d00d8 app:id/usernameeditassignexam}
org.veetech.veeknowintern D/Username------>: android.support.v7.widget.AppCompatEditText {52750c5c VFED..CL ......I. 0,0-0,0 #7f0d00d8 app:id/usernameeditassignexam}
org.veetech.veeknowintern D/Username------>: android.support.v7.widget.AppCompatEditText {52750c5c VFED..CL .F. ..... 152,0-572,90 #7f0d00d8 app:id/usernameeditassignexam}      

2 个答案:

答案 0 :(得分:3)

您默认打印toString返回的类/实例,而不是

Log.d("Username------>", username.getText().toString());

如果您还不知道 - 同样的问题是您必须做"" +的原因 - 这是因为如果您Log.d(TAG, username);它会告诉您签名不匹配 - 它不知道如何处理这个Object' EditText'。通过将它与emtpy字符串连接起来,您也可以将此对象视为字符串,因此Java通过调用对象的toString方法来强制转换它。将来,您可以将此识别为您意外使用该对象而非其值的信号

答案 1 :(得分:-1)

你应该使用

Log.d("Username------>", username.getText().toString());
如果需要.toString(),则需要

String。 因为.getText()会返回CharSequence