我正在尝试从我的数据库中提取的数据设置导航抽屉活动的文本,但是当我尝试这样做时,它会抛出以下错误
尝试在空对象引用上调用虚方法'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();
}
答案 0 :(得分:4)
空指针试图说textview为null。这可能发生,因为findviewbyid与xml上的正确匹配。确保您的id匹配xml和java文件
答案 1 :(得分:0)
可能有两种情况..
如果你使用的是旧版Android Studio,那么你应该使用这个TextView txtName = (TextView)findViewById(R.id.nameText);
另一种可能性是,声明textview的布局可能不同。
答案 2 :(得分:0)
这实际上解决了我的问题:
for something like this
我试图从我的主类中设置导航标题文本。