android-尝试调用虚拟方法';void android.widget.TextView.setText(java.lang.CharSequence)和#x27;关于空对象引用

android-尝试调用虚拟方法';void android.widget.TextView.setText(java.lang.CharSequence)和#x27;关于空对象引用,android,Android,我试图从数据库中获取的数据设置导航抽屉活动的文本,但是当我尝试这样做时,它抛出以下错误 尝试在空对象引用上调用虚拟方法“void android.widget.TextView.setText(java.lang.CharSequence)” 我是否在代码中遗漏了什么或做了什么错误 public void fetchDb(){ String email = getIntent().getExtras().getString("EMAIL"); TextView txtName

我试图从数据库中获取的数据设置导航抽屉活动的文本,但是当我尝试这样做时,它抛出以下错误

尝试在空对象引用上调用虚拟方法“void android.widget.TextView.setText(java.lang.CharSequence)”

我是否在代码中遗漏了什么或做了什么错误

public void fetchDb(){
    String email = getIntent().getExtras().getString("EMAIL");

    TextView txtName = findViewById(R.id.nameText);
    TextView txtEmail = findViewById(R.id.emailText);
    String name, ema;

    DatabaseHelper dbh = new DatabaseHelper(this);

    newDb = dbh.getReadableDatabase();
    Cursor c = newDb.rawQuery("SELECT * FROM user WHERE user_email = \'" + email+"\'", null);
    if (c.moveToFirst()){
        do {
            name = c.getString(1);
            ema = c.getString(2);

            txtName.setText(name);
            txtEmail.setText(ema);

        } while(c.moveToNext());
    }
    c.close();
    newDb.close();
}

可能有两种情况。。 如果你使用的是旧版本的Android studio,那么你应该使用这个
TextView txtName=(TextView)findViewById(R.id.nameText)


另一种可能是,声明textview时的布局可能不同。

Null指针尝试表示textview为Null。这可能是因为findviewbyid与xml上的正确ID不匹配。确保您的id在xml和java文件上匹配这实际上解决了我的问题:


我试图从我的主类设置导航标题文本。

您可以粘贴布局.xml吗?检查您的文本视图id我的文本视图名称是否正确,并且位于导航标题\u主菜单.xml布局中。fetchDb()方法位于MainMenu.java中class@IvanAldwinA.Cristobal如果访问类的任何方法/变量而不初始化它,则会出现空指针。……我没有使用旧版本,但我认为它是不同的布局。因为我声明的文本视图位于nav_header_main_menu.xml文件中。不在activity_main_menu.xmlYeah.中,然后必须将navheader上下文传递给findviewbyid<代码>导航视图导航视图=(导航视图)findViewById(R.id.nav_视图);View hView=navigationView.getHeaderView(0);TextView导航用户=(TextView)hView.findViewById(R.id.nav_名称)不要将假设作为答案。首先阅读问题。谢谢,我错过了正确的布局!文本视图位于nav_header_main_menu.xml上,而不是activity_main_menu.xml上。是否可以在MainMenu类上编辑nav_header_main_menu文本视图?您需要在nav_header视图上找到它。首先为标题创建视图并找到它。NavigationView NavigationView=(NavigationView)findViewById(R.id.nav_视图);navigationView.setNavigationItemSelectedListener(此);视图标题=navigationView.getHeaderView(0);text=header.findviewbyd(R.id.text);