为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我得到这个空引用对象?

为什么我得到这个空引用对象?

温温酱 2023-11-10 15:43:14
我尝试在我的应用程序上显示客户个人资料,但是当我单击个人资料按钮(个人资料页面)时,这些代码行会使应用程序崩溃该错误表示尝试在空对象引用上调用虚拟方法“void android.widget.EditText.setText(java.lang.CharSequence)”我的姓名和地址可以显示,但不能显示我的电子邮件和电话号码,这很奇怪为什么会发生这样的情况?我检查我的数据库,它包含数据,我被困在这里如何解决我的问题,因为代码无法读取我的电子邮件和电话号码,但可以准备我的姓名和地址。public class CustProfileActivity extends AppCompatActivity {    TextView email;    EditText name, address, phone;    Button update;    DatabaseReference databaseReference;    FirebaseAuth firebaseAuth;    String userId;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_cust_profile2);        name = findViewById(R.id.name);        address = findViewById(R.id.address);        update = findViewById(R.id.update);        databaseReference = FirebaseDatabase.getInstance().getReference("Customer").child("");        firebaseAuth = FirebaseAuth.getInstance();        userId = firebaseAuth.getUid();        databaseReference.addValueEventListener(new ValueEventListener() {            @Override            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {                Customer cust = dataSnapshot.child(userId).getValue(Customer.class);                name.setText(cust.name);                address.setText(cust.home_address);                phone.setText(cust.telephone_number);                email.setText(cust.email);            }            @Override            public void onCancelled(@NonNull DatabaseError databaseError) {            }        });
查看完整描述

2 回答

?
森栏

TA贡献1810条经验 获得超5个赞

你必须初始化这些视图电子邮件、电话

所以 onCreate 通过 id 查找视图来初始化该视图


查看完整回答
反对 回复 2023-11-10
?
不负相思意

TA贡献1777条经验 获得超10个赞

似乎您错过了初始化EditTextfrom 布局。初始化后,尝试对其执行操作。


在手机上设置文本的操作是在该视图初始化之前完成的。这就是它抛出错误的原因


空对象引用上的 void android.widget.EditText.setText(java.lang.CharSequence)'


public class CustProfileActivity extends AppCompatActivity {

 ...// ... means rest of your code


@Override

protected void onCreate(Bundle savedInstanceState) {

 ...

  // missed to initialize phone & email

  phone = findViewById(R.id.phone);

  email = findViewById(R.id.email);

 ...

 }

}


查看完整回答
反对 回复 2023-11-10
  • 2 回答
  • 0 关注
  • 110 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信