Java 字符串继续调用NullPointerException,不确定它在哪里';他是从哪里得到的
当我第一次运行应用程序时遇到这个问题时,我正在遵循一个实现SQLite数据库的教程Java 字符串继续调用NullPointerException,不确定它在哪里';他是从哪里得到的,java,android,sqlite,nullpointerexception,Java,Android,Sqlite,Nullpointerexception,当我第一次运行应用程序时遇到这个问题时,我正在遵循一个实现SQLite数据库的教程 java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.example.montymason.sqlitedatabaseproject.MyDBHandler.databaseToString()' on a null object reference 我不确定这个空指针引用来自哪里。下面是我
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.example.montymason.sqlitedatabaseproject.MyDBHandler.databaseToString()' on a null object reference
我不确定这个空指针引用来自哪里。下面是我在数据库处理程序类中调用的主要活动和函数的代码
我们将非常感谢您对解决方案的任何帮助
主活动显示功能代码:
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
// Database Helper
MyDBHandler db;
// TextView
TextView database_contents;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
displayItems();
}
// New entry button.
public void addNewItem_butt(View v){
Intent addnewItem = new Intent(MainActivity.this, addItem.class);
startActivity(addnewItem);
}
public void displayItems(){
String dbItems;
dbItems = db.databaseToString();
if(dbItems != null){
database_contents.setText(dbItems);
}
else{
database_contents.setText("No items to display.");
}
}}
将结果返回到主活动的数据库处理程序类的代码:
public String databaseToString(){
String displayItem = "";
SQLiteDatabase db = getWritableDatabase();
String query = "SELECT * FROM " + TABLE_NAME + "WHERE 1";
// Cursor
Cursor readDB = db.rawQuery(query, null);
readDB.moveToFirst();
while(!readDB.isAfterLast()){
if(readDB.getString(readDB.getColumnIndex("productname")) != null){
displayItem += "Product Name - " + readDB.getString(readDB.getColumnIndex("productname")) +
"\nProduct Color - " + readDB.getString(readDB.getColumnIndex("productcolor"));
displayItem += "\n";
}
else{
displayItem += "No items to display.";
}
}
db.close();
return displayItem;
}
问题就在眼前
dbItems = db.databaseToString();
确保您正在数据库中提取数据
如果有可能为空,请使用空检查器将其包装起来
if (db != null){
dbItems = db.databaseToString();
//then all your related code
}
问题是db是空的。请张贴您的主要活动的其余部分,以便我们可以help@YawAsare,我已经添加了完整的主活动代码。非常感谢!成功了。我想我的大脑已经被不停的编程弄得精疲力竭了。接受你的回答是正确的。