1

我有一个CursorSelect from sqlite,在这query我做substring但我可以使用从substring它不会给我任何错误,但显示我listView空。如何在游标中使用子字符串?

try { 
     String value = editText.getText().toString(); 
     cursor = sql.rawQuery(
       "SELECT MetaDataID,Data,CategoryID,ParentID FROM Book WHERE Data LIKE '" 
         + "%" + value + "%'", null); 
     if (cursor != null) { 
      if (cursor.moveToFirst()) { 
       do { 
        Struct_Search note = new Struct_Search(); 
        note.MetaData = cursor.getInt(cursor.getColumnIndex("MetaDataID")); 
        Result = cursor.getString(cursor.getColumnIndex("Data")); 
        int A = Result.indexOf(value); 
        String V = Result.substring(A,100); 
        note.Value = V; 
        note.NumberAyeh = cursor.getInt(cursor.getColumnIndex("CategoryID")); 
        ParentID = cursor.getInt(cursor.getColumnIndex("ParentID")); 
        CursorSecond = sql.rawQuery("SELECT name FROM ContentList WHERE id ="+ ParentID, null); 
        if (CursorSecond != null) { 
         do { 
          CursorSecond.moveToFirst(); 
          note.NameSureh = CursorSecond.getString(CursorSecond.getColumnIndex("name")); 
          CursorSecond.close(); 
         } while (CursorSecond.moveToNext()); 
        } 
        notes.add(note); 
       } while (cursor.moveToNext()); 
      } 
      adapter.notifyDataSetChanged(); 
     } 
    } catch (Exception e) { 
    } finally { 
     cursor.close(); 
    } 

声明:此行不工作:

   String V = Result.substring(A,100); 
       note.Value = V; 

回答

1

如果你正试图获得前100个字符的字符的索引之后,并note.Value设置它,改变你的子串是

// substring(int beginIndex, int endIndex) 
Result.substring(A, A + 100); 

在java中,substring的第二个参数是endIndex,而不是Length。

+0

我删除,但不工作。 – 2014-12-04 09:26:14

+0

我能做什么? ;( – 2014-12-04 09:26:49

+0

@AA请参阅编辑,java substring的第二个参数是end index,不是长度,我也推荐记录东西,所以你可以看到'A'的值是什么,所以找到一个索引 – Doomsknight 2014-12-04 09:28:51

相关问题