首页 > 解决方案 > Edittext 不在 Android 中检索数据

问题描述

我的问题是,当我尝试从edittext 字段(uidreg、passwordreg)中获取数据时,它失败了。这if(!uid.equals("") || !password.equals(""))会变成错误并打印吐司Toast.makeText(getApplicationContext(),"All fields are required",Toast.LENGTH_LONG).show();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.reg);

        Button studentbtn = (Button)findViewById(R.id.studentbtn);

        EditText textuidreg = (EditText)findViewById(R.id.uidreg);
        EditText textpasswordreg = (EditText)findViewById(R.id.passwordreg);

        String uid = textuidreg.getText().toString();
        String password = textpasswordreg.getText().toString();
        Toast.makeText(getApplicationContext(),uid,Toast.LENGTH_LONG).show();

        studentbtn.setMovementMethod(LinkMovementMethod.getInstance());
        studentbtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                
                if(!uid.equals("") || !password.equals("")) {

                  
                 }
                 else {
                    Toast.makeText(getApplicationContext(),"All fields are required",Toast.LENGTH_LONG).show();
                }

            }
        });

        teacherbtn.setMovementMethod(LinkMovementMethod.getInstance());
        teacherbtn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent intent = new Intent(RegistrationActivity.this, MainActivity.class);
                 startActivity(intent);
            }

        });



    }

}



    <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">


    

    <EditText
        android:id="@+id/uidreg"
        android:layout_width="210dp"
        android:layout_height="wrap_content"
        android:drawableRight="@drawable/ic_uid"
        android:ems="10"
        android:hint="uid"
        android:importantForAutofill="no"
        android:inputType="text"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.482"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.327" />

    
    <EditText
        android:id="@+id/passwordreg"
        android:layout_width="214dp"
        android:layout_height="40dp"
        android:drawableRight="@drawable/ic_password"
        android:ems="20"
        android:hint="password"
        android:importantForAutofill="no"
        android:inputType="textPassword"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.492"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.528" />

  

</androidx.constraintlayout.widget.ConstraintLayout>

标签: javaandroidxml

解决方案


你需要把

        String uid = textuidreg.getText().toString();
        String password = textpasswordreg.getText().toString();

内部onClick函数完整代码应该像

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.reg);

        Button studentbtn = (Button)findViewById(R.id.studentbtn);

        EditText textuidreg = (EditText)findViewById(R.id.uidreg);
        EditText textpasswordreg = (EditText)findViewById(R.id.passwordreg);
        Toast.makeText(getApplicationContext(),uid,Toast.LENGTH_LONG).show();

        studentbtn.setMovementMethod(LinkMovementMethod.getInstance());
        studentbtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String uid = textuidreg.getText().toString();
                String password = textpasswordreg.getText().toString();
                
                if(!uid.equals("") || !password.equals("")) {

                  
                 }
                 else {
                    Toast.makeText(getApplicationContext(),"All fields are required",Toast.LENGTH_LONG).show();
                }

            }
        });

        teacherbtn.setMovementMethod(LinkMovementMethod.getInstance());
        teacherbtn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent intent = new Intent(RegistrationActivity.this, MainActivity.class);
                 startActivity(intent);
            }

        });



    }

}

推荐阅读