- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我需要帮助。我有一个带有自定义适配器的 ListView,在这个 ListView 中我有一个 CheckBox 并且在 onClick 方法中应该更新我的数据库中的一个表。我的 CheckBox 的 onClick 方法是在我的适配器类中实现的,当我单击某个 CheckBox 时,我会在创建 ListView 时调用其他类的方法。
在我的适配器类中
#chkQuitado.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CheckBox cb = (CheckBox) v;
ViewMovimentos vm = new ViewMovimentos();
int movId = Integer.parseInt(entry.getMovId());
if(cb.isChecked()){
vm.confirmaQuitacao(context, movId); //Implementada na classe ViewMovimentos
}else{
vm.desfazQuitacao(context, movId); //Implementada na classe ViewMovimentos
}
}
});
#
在我的 Movimentos.class 中,我实现了我的方法 confirmaQuitacao() 和 desfazQuitacao()
#public void confirmaQuitacao(Context context, final int movId){
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setMessage("Confirma a quitação deste movimento?");
builder.setPositiveButton("Sim", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
quitaMovimento(movId, MOV_FECHADO);
}
});
builder.setNeutralButton("Não", null);
builder.setTitle("Aviso");
builder.show();
}
public void desfazQuitacao(Context context, final int movId){
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setMessage("Deseja marcar esse movimento como não quitado?");
builder.setPositiveButton("Sim", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
quitaMovimento(movId, MOV_ABERTO);
}
});
builder.setNeutralButton("Não", null);
builder.setTitle("Aviso");
builder.show();
}
#
当这两个方法调用quitaMovimento方法时。
#public void quitaMovimento(int movId, int quitar){
SQLiteDatabase banco = openOrCreateDatabase(nmBanco, MODE_WORLD_WRITEABLE, null);
ContentValues camposPar = new ContentValues();
camposPar.put("movQuitado", quitar);
banco.update("movimentos", camposPar, "movId = "+movId, null);
localizaRegistros();
}
#
因此,当我调用 openOrCreateDatabase() 时,我的应用程序发生强制关闭,并且 logcat 显示以下错误。
#02-14 22:47:33.645: E/AndroidRuntime(367): Uncaught handler: thread main exiting due to uncaught exception
02-14 22:47:33.749: E/AndroidRuntime(367): java.lang.NullPointerException
02-14 22:47:33.749: E/AndroidRuntime(367): at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:193)
02-14 22:47:33.749: E/AndroidRuntime(367): at com.simpatico.sgf.ViewMovimentos.quitaMovimento(ViewMovimentos.java:433)
02-14 22:47:33.749: E/AndroidRuntime(367): at com.simpatico.sgf.ViewMovimentos$7.onClick(ViewMovimentos.java:450)
02-14 22:47:33.749: E/AndroidRuntime(367): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:158)
02-14 22:47:33.749: E/AndroidRuntime(367): at android.os.Handler.dispatchMessage(Handler.java:99)
02-14 22:47:33.749: E/AndroidRuntime(367): at android.os.Looper.loop(Looper.java:123)
02-14 22:47:33.749: E/AndroidRuntime(367): at android.app.ActivityThread.main(ActivityThread.java:4363)
02-14 22:47:33.749: E/AndroidRuntime(367): at java.lang.reflect.Method.invokeNative(Native Method)
02-14 22:47:33.749: E/AndroidRuntime(367): at java.lang.reflect.Method.invoke(Method.java:521)
02-14 22:47:33.749: E/AndroidRuntime(367): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
02-14 22:47:33.749: E/AndroidRuntime(367): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
02-14 22:47:33.749: E/AndroidRuntime(367): at dalvik.system.NativeStart.main(Native Method)
#
有人可以帮我解决这个问题吗?
谢谢
最佳答案
openOrCreateDatabase
的一些参数被记录为可选的,但这并不意味着您可以为它们传递 null
;这意味着您应该在根本不传递这些参数的地方使用重载。
这是一种适合您的语法:
SQLiteDatabase banco = openDatabase(nmBanco, MODE_WORLD_WRITEABLE, SQLiteDatabase.CREATE_IF_NECESSARY)
关于android - openOrCreateDatabase 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9293195/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!