Java 当我打开一个模块时,它会崩溃
我正在创建一个android项目,当我打开foodlist模块时,它应该显示一个带有描述的数据图像,但是它崩溃了,logcat说Java 当我打开一个模块时,它会崩溃,java,android-studio,cursor,Java,Android Studio,Cursor,我正在创建一个android项目,当我打开foodlist模块时,它应该显示一个带有描述的数据图像,但是它崩溃了,logcat说 原因:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“android.database.Cursor com.example.pointofsale.DatabaseHelper.getItemsdata(java.lang.String)” 在com.example.pointofsale.FoodList.onCrea
原因:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“android.database.Cursor com.example.pointofsale.DatabaseHelper.getItemsdata(java.lang.String)”
在com.example.pointofsale.FoodList.onCreate(FoodList.java:31)
如何解决此问题
public class FoodList extends AppCompatActivity {
GridView gridView;
ArrayList<Food> list;
FoodListAdapter adapter = null;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_food_list);
gridView = (GridView) findViewById(R.id.foodgridviewID);
list = new ArrayList<>();
adapter = new FoodListAdapter(this, R.layout.food_items,list);
gridView.setAdapter(adapter);
//get data from database
Cursor cursor = Add_Items.databaseHelper.getItemsdata("SELECT * FROM ITEMS");
list.clear();
while (cursor.moveToNext())
{
int id = cursor.getInt(0);
String name = cursor.getString(1);
String price = cursor.getString(2);
byte[] image = cursor.getBlob(3);
list.add(new Food(name, price, image, id));
}
adapter.notifyDataSetChanged();
if (list.size() == 0)
{
Toast.makeText(this,"No record found", Toast.LENGTH_SHORT).show();
}
}
}
在代码
中添加项目。databaseHelper
为null
确保已初始化Add\u Items.databaseHelper
的实例
public Cursor getItemsdata (String sql)
{
SQLiteDatabase db = getReadableDatabase();
return db.rawQuery(sql, null);
}