Java parseInt时发生SQLite错误

Java parseInt时发生SQLite错误,java,android,sqlite,Java,Android,Sqlite,我正在尝试使用SQLite。因为这是我第一次尝试实现SQLite,所以我遵循 但我犯了这样的错误 08-21 20:47:44.129: E/AndroidRuntime(1710): FATAL EXCEPTION: main 08-21 20:47:44.129: E/AndroidRuntime(1710): Process: com.indomultimedia.hellobali, PID: 1710 08-21 20:47:44.129: E/AndroidRuntime(1710)

我正在尝试使用SQLite。因为这是我第一次尝试实现SQLite,所以我遵循

但我犯了这样的错误

08-21 20:47:44.129: E/AndroidRuntime(1710): FATAL EXCEPTION: main
08-21 20:47:44.129: E/AndroidRuntime(1710): Process: com.indomultimedia.hellobali, PID: 1710
08-21 20:47:44.129: E/AndroidRuntime(1710): java.lang.RuntimeException: Unable to start activity     ComponentInfo{com.indomultimedia.hellobali/com.indomultimedia.hellobali.MainHelloballi}: java.lang.NumberFormatException: Invalid int: "null"
08-21 20:47:44.129: E/AndroidRuntime(1710):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2292)
08-21 20:47:44.129: E/AndroidRuntime(1710):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2350)
08-21 20:47:44.129: E/AndroidRuntime(1710):     at android.app.ActivityThread.access$800(ActivityThread.java:163)
08-21 20:47:44.129: E/AndroidRuntime(1710):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1257)
08-21 20:47:44.129: E/AndroidRuntime(1710):     at android.os.Handler.dispatchMessage(Handler.java:102)
08-21 20:47:44.129: E/AndroidRuntime(1710):     at android.os.Looper.loop(Looper.java:157)
08-21 20:47:44.129: E/AndroidRuntime(1710):     at android.app.ActivityThread.main(ActivityThread.java:5335)
08-21 20:47:44.129: E/AndroidRuntime(1710):     at java.lang.reflect.Method.invokeNative(Native Method)
08-21 20:47:44.129: E/AndroidRuntime(1710):     at java.lang.reflect.Method.invoke(Method.java:515)
08-21 20:47:44.129: E/AndroidRuntime(1710):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
08-21 20:47:44.129: E/AndroidRuntime(1710):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
08-21 20:47:44.129: E/AndroidRuntime(1710):     at dalvik.system.NativeStart.main(Native Method)
08-21 20:47:44.129: E/AndroidRuntime(1710): Caused by: java.lang.NumberFormatException: Invalid int: "null"
08-21 20:47:44.129: E/AndroidRuntime(1710):     at java.lang.Integer.invalidInt(Integer.java:137)
08-21 20:47:44.129: E/AndroidRuntime(1710):     at java.lang.Integer.parseInt(Integer.java:354)
08-21 20:47:44.129: E/AndroidRuntime(1710):     at java.lang.Integer.parseInt(Integer.java:331)
08-21 20:47:44.129: E/AndroidRuntime(1710):     at com.indomultimedia.hellobali.DatabaseHandler.getAllContacts(DatabaseHandler.java:98)
08-21 20:47:44.129: E/AndroidRuntime(1710):     at com.indomultimedia.hellobali.MainHelloballi.onCreate(MainHelloballi.java:177)
08-21 20:47:44.129: E/AndroidRuntime(1710):     at android.app.Activity.performCreate(Activity.java:5389)
08-21 20:47:44.129: E/AndroidRuntime(1710):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
08-21 20:47:44.129: E/AndroidRuntime(1710):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2256)
08-21 20:47:44.129: E/AndroidRuntime(1710):     ... 11 more
这是我代码中的错误行

MainHellobali.java

    // Reading all contacts
    Log.d("Reading: ", "Reading all contacts.."); 
    List<AllItem> allItem = db.getAllContacts(); //Error in this line       

    for (AllItem cn : allItem) {
        String log = "Id: "+cn.getTableID()+" ,Name: " + cn.getCategory_name() + " ,Phone: " + cn.getItem_name();
            // Writing Contacts to log
    Log.d("Name: ", log);
}
// Getting All Contacts
public List<AllItem> getAllContacts() {
    List<AllItem> contactList = new ArrayList<AllItem>();
    // Select All Query
    String selectQuery = "SELECT  * FROM " + TABLE_ALLITEM;

    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);

    // looping through all rows and adding to list
    if (cursor.moveToFirst()) {
        do {
            AllItem allitem = new AllItem();
            allitem.setTableID(Integer.parseInt(cursor.getString(0))); // error in this line
            allitem.setCategory_name(cursor.getString(1));
            allitem.setItem_Name(cursor.getString(2));
            // Adding contact to list
            contactList.add(allitem);
        } while (cursor.moveToNext());
    }

    // return contact list
    return contactList;
}
//读取所有联系人
日志d(“读取:”,“读取所有联系人…”);
List allItem=db.getAllContacts()//这行有错误
对于(AllItem cn:AllItem){
String log=“Id:”+cn.getTableID()+”,Name:“+cn.getCategory_Name()+”,Phone:“+cn.getItem_Name()”;
//将联系人写入日志
Log.d(“名称:”,Log);
}
DatabaseHandler.java

    // Reading all contacts
    Log.d("Reading: ", "Reading all contacts.."); 
    List<AllItem> allItem = db.getAllContacts(); //Error in this line       

    for (AllItem cn : allItem) {
        String log = "Id: "+cn.getTableID()+" ,Name: " + cn.getCategory_name() + " ,Phone: " + cn.getItem_name();
            // Writing Contacts to log
    Log.d("Name: ", log);
}
// Getting All Contacts
public List<AllItem> getAllContacts() {
    List<AllItem> contactList = new ArrayList<AllItem>();
    // Select All Query
    String selectQuery = "SELECT  * FROM " + TABLE_ALLITEM;

    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);

    // looping through all rows and adding to list
    if (cursor.moveToFirst()) {
        do {
            AllItem allitem = new AllItem();
            allitem.setTableID(Integer.parseInt(cursor.getString(0))); // error in this line
            allitem.setCategory_name(cursor.getString(1));
            allitem.setItem_Name(cursor.getString(2));
            // Adding contact to list
            contactList.add(allitem);
        } while (cursor.moveToNext());
    }

    // return contact list
    return contactList;
}
//获取所有联系人
公共列表getAllContacts(){
List contactList=new ArrayList();
//选择所有查询
String selectQuery=“SELECT*FROM”+表格项目;
SQLiteDatabase db=this.getWritableDatabase();
Cursor Cursor=db.rawQuery(selectQuery,null);
//循环遍历所有行并添加到列表
if(cursor.moveToFirst()){
做{
AllItem AllItem=新AllItem();
allitem.setTableID(Integer.parseInt(cursor.getString(0));//此行出错
allitem.setCategory_名称(cursor.getString(1));
allitem.setItem_名称(cursor.getString(2));
//将联系人添加到列表中
联系人列表。添加(allitem);
}while(cursor.moveToNext());
}
//返回联系人列表
返回联系人列表;
}
我不知道为什么会出现错误。我试着尽可能地遵循教程。 任何人都可以帮助修复此错误?

Integer.parseInt(cursor.getString(0))这是触发此错误的行

cursor.getString(0)
返回
null
。总的来说,我建议您将这一行替换为以下内容:
cursor.getInt(0)
。但是,如果列为null,我想这仍然会抛出。

Integer.parseInt(cursor.getString(0))这是触发错误的行

cursor.getString(0)
返回
null
。总的来说,我建议您将这一行替换为以下内容:
cursor.getInt(0)
。但是,如果列为null,我想这仍然会抛出。

Integer.parseInt(cursor.getString(0))这是触发错误的行

cursor.getString(0)
返回
null
。总的来说,我建议您将这一行替换为以下内容:
cursor.getInt(0)
。但是,如果列为null,我想这仍然会抛出。

Integer.parseInt(cursor.getString(0))这是触发错误的行


cursor.getString(0)
返回
null
。总的来说,我建议您将这一行替换为以下内容:
cursor.getInt(0)
。但是,如果列为null,我想这仍然会抛出。

错误消息说明了一切。您正试图将“null”数据库字段解析为
int
。p、 您应该调用
cursor.getInt(0)
,而不是
Integer.parseInt(cursor.getString(0))
。在所有数据库中,如果数据类型为
Integer
,则必须是正数和负数,以及零。感谢您的评论:数据错误消息说明了一切。您正试图将“null”数据库字段解析为
int
。p、 您应该调用
cursor.getInt(0)
,而不是
Integer.parseInt(cursor.getString(0))
。在所有数据库中,如果数据类型为
Integer
,则必须是正数和负数,以及零。感谢您的评论:数据错误消息说明了一切。您正试图将“null”数据库字段解析为
int
。p、 您应该调用
cursor.getInt(0)
,而不是
Integer.parseInt(cursor.getString(0))
。在所有数据库中,如果数据类型为
Integer
,则必须是正数和负数,以及零。感谢您的评论:数据错误消息说明了一切。您正试图将“null”数据库字段解析为
int
。p、 您应该调用
cursor.getInt(0)
,而不是
Integer.parseInt(cursor.getString(0))
。在所有数据库中,如果数据类型为
Integer
,则必须是填充正数和负数以及零。感谢您的评论:DThanks。我会尽快接受你的答复。谢谢。我会尽快接受你的答复。谢谢。我会尽快接受你的答复。谢谢。我会尽快接受你的答复。