- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
正如标题所示,我收到了 NullPointerException
,但我不知道为什么。我已经检查了代码好几次,并在输入数据之前将数据打印到 logcat 中,看起来不错。在输入代码之前,我想让您知道我正在使用 RecyclerView
(如果不是很明显的话)。
// Implement OnLongClick listener. Long Clicked items is removed from list.
@Override
public boolean onLongClick(View view) {
ViewHolder holder = (ViewHolder) view.getTag();
if (view.getId() == holder.mNameTextView.getId()) {
mDataset.remove(holder.getPosition());
Log.i("NULL POINTER", (holder.mNameTextView.getText().toString()));
String temp = sqLiteDBadapter.getRowid(holder.mNameTextView.getText().toString()); // --- It fails on this line
Long temp2 = Long.parseLong(temp);
sqLiteDBadapter.deleteScore(temp2);
// Call this method to refresh the list and display the "updated" list
notifyDataSetChanged();
Toast.makeText(sContext, "Item " + holder.mNameTextView.getText() + " has been removed from list",
Toast.LENGTH_SHORT).show();
}
return false;
}
这是 SQLiteDBadapter 的一部分:
public String getRowid(String date) {
mDbHelper = new DatabaseHelper(mCtx);
SQLiteDatabase db=mDbHelper.getReadableDatabase();
Cursor c = db.rawQuery("SELECT * from " + DATABASE_TABLE + " WHERE date = ?" , new String[] { date });
if (c.moveToFirst()){
long temp;
temp = c.getLong(c.getColumnIndex(KEY_ROWID));
rowID = String.valueOf(temp);
Log.i("----_ROW ID = ", rowID);
}else if (!c.moveToFirst())
Log.i("CURSOR ERROR", " CURSOR INDEX MOST LIKELY 0");
else
c.moveToFirst();
return rowID;
}
我在代码中将 rowID 声明为 String rowID;
正如您在这里看到的:Database SQLite Fiddle获取行的代码工作得很好。
此外,Log.i
NULL POINTER 在崩溃之前打印输出:I/NULL POINTER: Nov 2, 2014 11:51:14 AM
这就是根据 Fiddle
11-02 12:29:30.917 419-419/com.archeryscoresmaterialdesign W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x4160f620)
11-02 12:29:30.927 419-419/com.archeryscoresmaterialdesign E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.archeryscoresmaterialdesign, PID: 419
java.lang.NullPointerException
at com.archeryscoresmaterialdesign.RecyclerViewAdapter.onLongClick(RecyclerViewAdapter.java:90)
at android.view.View.performLongClick(View.java:4476)
at android.widget.TextView.performLongClick(TextView.java:8362)
at android.view.View$CheckForLongPress.run(View.java:18451)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5171)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:837)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:653)
at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132)
at dalvik.system.NativeStart.main(Native Method)
最佳答案
您是否正在正确创建 sqLiteDBadapter?
我想您已经创建了 SQLiteOpenHelper 的子类。您正在尝试调用对象上的方法,该方法为空。试试这个:
SQLiteDBadapter db = new SQLiteDBadapter(ApplicationContext);
现在您应该能够调用它的任何方法。当你完成阅读、写作等操作后,不要忘记关闭数据库连接。
db.close();
关于java - 获取 SQLite rowID 时出现 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26702315/
所以我有一张关于图像数据的表格。 table 看起来像这样...... ROWID|title|description|file_path 文件路径包含图像的名称。我想重命名图像以匹配 ROWID。
我想知道 rowID 之间的区别和 rowNUM 以及如何在我们的表格中看到这两者。 当我执行此操作时: SELECT * FROM emp WHERE rownum=1 它返回一个查询,但是当我对
我们可以在不使用伪列rowid的情况下删除重复记录吗...删除重复记录时 max(rowid)/min(rowid) 的含义是什么? 最佳答案 ROWID 是 Oracle 用于定位物理记录的内部行标
The rowid value can be accessed using one of the special case-independent names "rowid", "oid", or "
我正在尝试创建一个交叉表,其中行 = 月,列 = 天(即 1、2、3、4...31)。 Month | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
我创建了带有列 id、name 的 sqlite 表 tmp。 CREATE TABLE if not exists tmp ( id INTEGER
使用 rowid 删除是否有任何严重的禁忌症? DELETE FROM NETATEMP.SFAC_TESTATA_CASISTICHE WHERE ROWID IN ( SELECT
甲骨文database change notification feature在行插入、更新和删除时发送 rowids(物理行地址)。正如 oracle 的文档中所指出的,应用程序可以使用此功能来构建
假设我创建一个表并通过执行以下操作插入一行: CREATE TABLE people (first_name text NOT NULL, last_name text NOT NULL ); INS
我可以使用 ROWID 代替 SQLite 表中的时间戳吗? 我需要获取 SQLite 表的 50 个最新项目,我正在考虑使用单独的时间戳字段,但后来我发现更大的 ROWID 意味着更新的项目,并且
我正在使用 sqlite3 进行我的第二个项目并有一个问题。 使用 rowid 和/或使用自己的 AUTOINCREMENT INTEGER 值有什么区别? 哪一个比另一个更好/更快? 最佳答案 根据
如果我输入: INSERT INTO table_b SELECT rowid, somecolumn FROM table_a ...rowid 列将作为普通列复制到新表中,这很可能会产生错误,
这是一个运行良好的查询: SELECT rowid as msg_rowid, a, b, c FROM messages m1 这是另一个也很好的方法: SELECT rowid as match_
我想知道使用 rowid 进行行匹配是否安全? 我有以下查询: select * from a, (select a.rowid rid, from a, b, c where a.some
我正在尝试使用 rowid 数据类型创建类型,但由于我尝试使用的类型而收到此错误: SQL> CREATE TYPE join_t IS OBJECT (inn rowid, out rowi
我只是想听听关于 ROWID 类型用作任何函数或过程的输入参数的不同意见。 我通常使用并看到主键用作输入参数,但是使用 ROWID 作为输入参数有什么缺点吗?我认为这很简单,如果在 WHERE 子句中
我正在调用一个存储过程,该过程返回行列表的 rowid。我在 Java 中存储实际 rowid 值时遇到了问题,因此我可以稍后使用该 rowid 进行后续更新语句。 例如: Select name,
我正在努力想出一个 sqlite 表的查询以 UPDATE OR INSERT 在 rowid。我遇到的问题是我有一个依赖于 rowid 的数据库,但是在填充表时可能没有足够的行。所以表格可能看起来像
我遇到一个问题,我无法弄清楚如何计算前一周每天的 RowID 数量,然后按计数器进行分组。 This is my current result This is the result i'm tryin
当我打开 EditRecord 的 Activity 时,我想选择微调器行以获得编辑记录中的足够值我发现如下代码,但它对微调器中的几条记录没问题,但是当 spinner.cursor 包含许多记录时,
我是一名优秀的程序员,十分优秀!