Java 从其他类调用方法时发生NullPointerException
我正在尝试让一个简单的笔记应用程序工作,但在调用某个方法时,我不断得到一个nullPointerException 对话框布局中文本编辑的值检索得很好。 我通过记录结果进行检查。 当我尝试运行createNotes(content)方法时,问题就出现了 这个类处理插入、删除和数据库相关的内容。我尝试过调试,但从未达到这个级别Java 从其他类调用方法时发生NullPointerException,java,android,sqlite,nullpointerexception,Java,Android,Sqlite,Nullpointerexception,我正在尝试让一个简单的笔记应用程序工作,但在调用某个方法时,我不断得到一个nullPointerException 对话框布局中文本编辑的值检索得很好。 我通过记录结果进行检查。 当我尝试运行createNotes(content)方法时,问题就出现了 这个类处理插入、删除和数据库相关的内容。我尝试过调试,但从未达到这个级别 public class NotesDao { public NotesBean createNotes(String content) { try {
public class NotesDao {
public NotesBean createNotes(String content) {
try {
Log.v("createNotes", content);
ContentValues values = new ContentValues();
values.put(DbHelper.COLUMN_CONTENT, content);
long insertSeq = database.insert(DbHelper.TABLE_NOTES, null, values);
Cursor cursor = database.query(
DbHelper.TABLE_NOTES, //String table
allColumns, //String[] columns
DbHelper.COLUMN_SEQ + " = " + insertSeq, //String selection
null, //String[] selectionArgs
null, //String groupBy
null, //String having
null); //String orderBy
cursor.moveToFirst();
NotesBean newNotes = cursorToNotes(cursor);
cursor.close();
return newNotes;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
顺便说一句,我还确认数据库是通过logcat打开的。。。
但它是在一个不同的活动。这是否意味着我应该在本次活动中关闭并再次打开它
任何帮助都将不胜感激!谢谢 您从未初始化过“datasource”对象,这就是为什么它会出现空指针异常。更改:
public NotesDao datasource;
到
在调用
createNotes()
之前,您从未初始化过datasource
,因此NullPointerException不会出现意外情况
如果您不需要多个实例,则可以考虑制作<代码> NotesDao < /COD> <代码> Stutelon < /C>。只有google。
空指针异常总是会出现缺少初始化或错误的视图元素初始化。在您的情况下,您缺少初始化datasource
对象(正如前面的答案所指出的)
一个有价值的建议是,始终交叉检查您的程序是否初始化了所有内容,对于您不确定的情况,也可以使用异常处理,例如来自不同来源的数据。您没有实例化NoteDao对象。请按如下方式更新您的代码:
public NotesDao datasource=new NotesDao();
如上所述,您的另一个类未初始化 在onCreate中放入初始化
datasource = new NotesDao();
您必须等到在onCreate中创建了类之后才能初始化该类中的变量 您可以发布完整的回溯吗?您的NotesDao类既不是静态的,也没有创建它的实例,这是因为您在“datasource”变量处得到空指针。在单击listener NotesDao datasource=new NotesDao()之前执行此操作;我尝试过初始化“datasource”,但仍然不起作用,我尝试过将其放在Dialog类和onCreate方法下。我也不知道在上下文中应该放些什么。。。我尝试输入'null'和'getBaseContext()',但仍然得到nullpointer例外我没有给出确切的代码并不意味着我没有给出任何答案。单词“initialized”表示必须创建新对象。我不是坐在这里用勺子喂食的。
public NotesDao datasource=new NotesDao();
datasource = new NotesDao();