-1

我正在构建一个包含导航抽屉的应用程序,所以在使用操作栏时,我尝试了多种方法,但没有得到解决。使用的主题是

这是运行时错误 E/AndroidRuntime: FATAL EXCEPTION: main Process: com.vrushali.hospital, PID: 32621 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.vrushali.hospital/com.vrushali.hospital.MainActivity3} :java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'voidandroidx.appcompat.app.ActionBar.setTitle(java.lang.CharSequence)'.....

 **My code of .java file**
            public class MainActivity3 extends AppCompatActivity {
                private DrawerLayout drawerLayout;
                private Toolbar toolbar;
                private NavigationView navigationView;
            private TextView nav_fullname,nav_email,nav_contact,nav_type;
            private DatabaseReference userRef;
                @Override
                protected void onCreate(Bundle savedInstanceState) {
                    super.onCreate(savedInstanceState);
                    setContentView(R.layout.activity_main);
                    drawerLayout = findViewById(R.id.drawer_layout);
                    toolbar = findViewById(R.id.toolbar);
                    setSupportActionBar(toolbar);
                    getSupportActionBar().setTitle("Patient Portal");
                    navigationView = findViewById(R.id.navigation_view);
                    ActionBarDrawerToggle toggle=new ActionBarDrawerToggle(MainActivity3.this,drawerLayout,
                            toolbar,R.string.navigation_drawer_open,R.string.navigation_drawer_closed);
                    drawerLayout.addDrawerListener(toggle);
                    toggle.syncState();
                    nav_fullname =navigationView.getHeaderView(0).findViewById(R.id.nav_fullname);
                    nav_email =navigationView.getHeaderView(0).findViewById(R.id.nav_email);
                    nav_contact =navigationView.getHeaderView(0).findViewById(R.id.nav_contact);
                    nav_type =navigationView.getHeaderView(0).findViewById(R.id.nav_type);
                    userRef= FirebaseDatabase.getInstance().getReference().child("users").child(FirebaseAuth.getInstance().getCurrentUser().getUid());
                    userRef.addValueEventListener(new ValueEventListener() {
                        @Override
                        public void onDataChange(@NonNull DataSnapshot snapshot) {
                           if (snapshot.exists()) {
                               String name= snapshot.child("name").getValue().toString();
                               nav_fullname.setText(name);
                               String email= snapshot.child("email").getValue().toString();
                               nav_fullname.setText(email);
                               String phonenumber= snapshot.child("phonenumber").getValue().toString();
                               nav_fullname.setText(phonenumber);
                               String type= snapshot.child("type").getValue().toString();
                               nav_fullname.setText(type);
            
                           }
                        }
            
                        @Override
                        public void onCancelled(@NonNull DatabaseError error) {
            
                        }
                    });
            
                }
            }

请帮助解决此错误,该错误与主题有关,但我没有得到它

4

1 回答 1

0

您的操作栏为空,因此您尝试在空对象上设置标题()。

  1. 您使用的主题是什么?"<style name="AppTheme.NoActionBar">"?

  2. setSupportActionBar(工具栏); 在这里放一个断点,工具栏是空的吗?

于 2021-11-27T07:48:46.953 回答