بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
جستجو در دیتابیس داخلی
سلام . من یه course به صورت زیر نوشتم
و یه متد به صورت زیر تعریف کردم , و اون رو تو addTextChangedListener صدا زدم با ورودی ایدیت تکست . ولی متاسفانه بعد از تایپ در ادیت تکست فورس کلوز میده . منون میشم راهنمایی ککنید
public void ref(String w) {
db.open();
for (int k = 0; k < 4; k++) {
StructNote h = new StructNote();
h.name = db.Display2(k, 1, "Name", w);
aray.add(h);
}
db.close();
adapter.notifyDataSetChanged();
}
public String Display2(int row, int col, String field, String word) {
Cursor cu;
cu = mydb.rawQuery("select * from content where " + field + " Like '%" + word + "%'", null);
cu.moveToPosition(row);
String s = cu.getString(col);
return s;
}
+1
0
Cursor رو مثل آرایه در نظر بگیرید که از صفر index گذاری میشه، نتیجه Query شما ۳ ردیف هست، یعنی صفر یک دو ، ولی تو حلقه for شما از ۰ تا کوچکتر از ۴ نوشتین که شامل صفر یک دو سه میشه، پس اون ۴ رو بکنید ۳ تا خطا رفع بشه. (10 سال پیش)
+1
0
البته این روش شما درست نیست چون ممکنه در یه Query دیگه شما تنها ۱ ردیف رو دریافت کنید و باز هم همین خطا رو دریافت کنید. باید از do while و moveToFirst و moveToNext استفاده کنید یا روشهای دیگه. (10 سال پیش)
0
0
ممنون بابت پاسخ گویی ولی درست نشد . دیتابیس من کلن 4 row داره . پس فکر کنم اون 4 درست باشه؟ (10 سال پیش)
+1
0
این چیزی که تو لاگ داره نشون میده میگه کلا ۳ تا row دارین و شما درخواست row چهارم رو کردین و چون وجود نداره کرش کرده (10 سال پیش)
0
0
ممنون از پاسخ . ولی 4 رو داره . من تو فراخونی عادیش مشکل ندارم . با همین حلقه فور فراخونی میشه و تو لیست ویو نمایش داده میشه . ولی جستجو همین که تو باکس تایپ میکنم فور کلوز میده (10 سال پیش)
0
0
اساتید درست میگن دوست من در آخر متد cusor رو حتما close کنید (10 سال پیش)
+2
0
۴ تا ردیف داشتن دلیل نمیشه که Query شما هم همون ۴ تا رو برگردونه، بهرحال خطا مربوط به اون چیزی که هست من و جناب زمانی اشاره کردیم یعنی logcat اینو میگه، دیتابیس رو بکشید بیرون با یه برنامه مدیریت دیتابیس Query تون رو تست کنید. (10 سال پیش)
0
0
تشکر . خیلی عجیبه :| . همین الان کوءری سرچ رو تست کردم بخوبی کار میکنه . این طرز کدنویسی برای جستجو صحیح هست ؟ شکل صحیش و معمولش به چه شکله؟ (10 سال پیش)
برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال
HoCoder
10 سال پیش
+3
0
من از این متد برای سرچ تو بانک استفاده میکنم امیدوارم این نمونه کد بدردتون بخوره
public static void search( final String wordSearch ) {
new Thread( new Runnable() {
@Override
public void run() {
G.storySearch.clear();
String query = "select * from " + TABLE_NAME + " where " + COLUMN_NAME + " like '%" + wordSearch + "%' group by " + COLUMN_NAME;
Cursor cursor = G.database.rawQuery( query , null );
for ( int i = 0 ; i < cursor.getCount() ; i++ ) {
cursor.moveToPosition( i );
StructureStory story = new StructureStory();
story.name = cursor.getString( COL_NAME );
story.favorite = cursor.getInt( COL_FAVORITE );
story.page = cursor.getInt( COL_PAGE );
G.storySearch.add( story );
}
}
} ).start();
}
پاسخ به سوال
116580
10 سال پیش
0
0
سپاس فراواان . متد seach رو تو addTextChangedListener با ورودی word.getText().toString() وارد کردم ولی وقتی تو ایدیت تکست چیزی مینویسم هیچ اتفاقی نمیفته و حته فورس کلوز هم نمیده . مشکل از چیه؟
(متد سررچ رو بیرون از addTextChangedListener صدا میزنم اطلاعات رو نمایش میده)
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .
