为什么我在空对象引用上收到 'android.widget.EditText com.google.android.material.textfield.TextInputLayout.getEditText()' 错误

Why am I getting error of 'android.widget.EditText com.google.android.material.textfield.TextInputLayout.getEditText()' on a null object reference

我看过很多与此问题相关的论坛,但都没有解决我的问题。我希望我在这里得到它。

这是我的Activity代码

public class addIndividual extends AppCompatActivity {
public TextInputLayout individualName;
public TextInputLayout individualPhno;
FirebaseFirestore db;
String name;
String phno;

@Override
protected void onCreate(Bundle savedInstanceState) {
    db=FirebaseFirestore.getInstance();
    individualName  = (TextInputLayout) findViewById(R.id.individualName);
    individualPhno= (TextInputLayout) findViewById(R.id.individualPhno);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_add_individual);

}


public void submitButton(View view) {
    name= individualName.getEditText().getText().toString();
    phno= "hello";
    Map<String,String> individualInfo = new HashMap<String,String >();
    individualInfo.put("name",name.trim());
    individualInfo.put("phNo",phno.trim());

    db.collection("individuals").add(individualInfo)
            .addOnCompleteListener(new OnCompleteListener<DocumentReference>() {
                @Override
                public void onComplete(@NonNull Task<DocumentReference> task) {

                    Toast.makeText(addIndividual.this, "Inserted Successfully", Toast.LENGTH_SHORT).show();
                }
            });


}
}

XML代码

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:layout_margin="10dp"
tools:context=".PSLogin.addIndividual">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:layout_gravity="center">



    <com.google.android.material.textfield.TextInputLayout
        android:id="@+id/individualName"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Enter Individual Name"
        android:layout_below="@id/textView1"
        android:layout_marginTop="40dp"
        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">
        >

        <com.google.android.material.textfield.TextInputEditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            />

    </com.google.android.material.textfield.TextInputLayout>

    <com.google.android.material.textfield.TextInputLayout
        android:id="@+id/individualPhno"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Enter Individual Phone Number"
        android:layout_below="@id/username"
        android:layout_marginTop="30dp"
        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">
        >

        <com.google.android.material.textfield.TextInputEditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="textPassword"
            />

    </com.google.android.material.textfield.TextInputLayout>

    <Button
        android:id="@+id/submit"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Submit"
        android:layout_below="@id/password"
        android:onClick="submitButton"
        android:layout_marginTop="30dp"
        android:gravity="center"
        style="?attr/materialButtonOutlinedStyle"
        />

</LinearLayout>

</LinearLayout>
enter code here

我已将 TextInputLayout 更改为 EditText,但问题仍然没有结果 错误 由以下原因引起:java.lang.NullPointerException:尝试在空对象引用上调用虚方法 'android.text.Editable android.widget.EditText.getText()' 什么时候 public EditText 个人名称;

错误发生在 name= individualName.getEditText().getText().toString();

在您的 onCreate() 中,您在设置视图之前初始化您的视图。您的 onCreate 应如下所示:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_add_individual);
    db=FirebaseFirestore.getInstance();
    individualName  = (TextInputLayout)findViewById(R.id.individualName);
individualPhno= (TextInputLayout) findViewById(R.id.individualPhno);
}