1
나는 Cursor
이 Select 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();
}
주의 사항 : 문자의 인덱스 후 처음 100 개 문자를 얻으려고 노력하는 경우
String V = Result.substring(A,100);
note.Value = V;
나는 제거하지만 작동하지 않습니다. –
무엇을 할 수 있습니까? ; ( –
@AA 편집, java 하위 문자열 두 번째 매개 변수는 끝 인덱스, 길이가 아님 참고 항목을 로깅하는 것이 좋습니다. 따라서 'A'값이 무엇인지 알 수 있으므로 인덱스를 찾을 수 있습니다 .. – Doomsknight