-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
تشکر
فعلا فقط داخل Cursor میریزم وهیچ کاری باهاش نمی کنم ، ممکنه مشکل از اون باشه؟
اینیم که گفتین چک کردم
قبل کوئری لوگ داد
لوگ بعد کوئری رو نداد
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
پس تنها دلیلش میتونه این باشه که دیتابیس رو مقدار ندادین یا بازش نکردین
بهتره هرجایی که با دیتابیس کار دارین همونجا بازش کنین و بعد از تموم شدن کارتون اون رو ببندید
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
آقا این کاری رو هم که گفتین انجام دادم نشد
مرسی از لطفتون که راهنماییم کردین
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
poorman جان اگه بخواهیم رو لیست ویو فیلتر بزاریم باید چیکار کنیم
مثلا بگیم اونایی که تو ستون favorite برابر yes هستند را نشان بده
همه را بخواهیم نشون بدیم که اینجوریه :
public void adaptList(Cursor sms) {
String[] array = new String[sms.getCount()];
int i = 0;
if (sms.moveToFirst()) {
do {
try {
array[i] = sms.getString(sms.getColumnIndex("rowid"));
i++;
} catch (Exception e) {
e.printStackTrace();
}
} while (sms.moveToNext());
}
listview = (ListView) findViewById(R.id.listpishvaz);
listview.setAdapter(new SmsListAdapter(this, array));
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
شما اگه بخوای خیلی ساده انجام بدی، این کار رو با کوئری میکنی به این صورت :
select * from yourTable where favorite = "yes"
و بعد اطلاعات رو میریزی توی آرایه و میدی به لیست
راههای سخت ترش میتونه این باشه که همین cursor که الان داری رو فیلتر کنی و بعد اطلاعاتش رو بریزی توی آرایه ( من فیلتر cursor رو کار نکردم )
راه دیگه میتونه این باشه که وقتی داری اطلاعات cursor رو میریزی توی آرایه، یک شرط بذاری که اگر مقدار cursor.getString(cursor.getColumnIndex("favorite") برابر yes بود اطلاعات رو بریزه توی آرایه
حالا دقیقا نمیدونم نیازت چیه و کجا میخوای این رو پیاده سازی کنی
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
همون روش اول که گفتی به جای کوئری زیر همونی گفتی را قرار میدیم ؟
MyDatabase myDatabase = new MyDatabase(this);
SQLiteDatabase mydb = myDatabase.getReadableDatabase();
Cursor sms = mydb.rawQuery("select rowid from sms" , null);
بعدش تو کد آرایه چیکار باید بکنیم :
public void adaptList(Cursor sms) {
String[] array = new String[sms.getCount()];
int i = 0;
if (sms.moveToFirst()) {
do {
try {
array[i] = sms.getString(sms.getColumnIndex("rowid"));
i++;
} catch (Exception e) {
e.printStackTrace();
}
} while (sms.moveToNext());
}
listview = (ListView) findViewById(R.id.listpishvaz);
listview.setAdapter(new SmsListAdapter(this, array));
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
آره کوئری رو با اون چیزی که گفتم عوض میکنی
توی کد آرایه لازم نیست چیزی رو تغییر خاصی بدی، همه چیز مثل قبل هست، فقط با این کوئری سطرهایی توی cursor ریخته میشن که favorite = "yes" باشه
البته من توی اون کوئری گفتم select * ، این یعنی تمام ستون ها رو برگردونه، اما شما هرچیزی که لازم داری رو بگو مثلا select rowid
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
poorman
آره کوئری رو با اون چیزی که گفتم عوض میکنی
توی کد آرایه لازم نیست چیزی رو تغییر خاصی بدی، همه چیز مثل قبل هست، فقط با این کوئری سطرهایی توی cursor ریخته میشن که favorite = "yes" باشه
البته من توی اون کوئری گفتم select * ، این یعنی تمام ستون ها رو برگردونه، اما شما هرچیزی که لازم داری رو بگو مثلا select rowid
دمت گرم ... حل شد
خیلی حال دادی
فدایی داری
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
میشه چندتا مورده استفاده خوب که واقعا استفاده از این خوبه رو بگید تا پروژه تون قشنگ برام جا بیوفته ؟
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
badname
میشه چندتا مورده استفاده خوب که واقعا استفاده از این خوبه رو بگید تا پروژه تون قشنگ برام جا بیوفته ؟
من متوجه سوالتون نشدم !!!
در مورد استفاده از چی دارید سوال میکنید ؟ دیتابیس ؟ یا لایبری SQLite asset helper ؟
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
poorman
من متوجه سوالتون نشدم !!!
در مورد استفاده از چی دارید سوال میکنید ؟ دیتابیس ؟ یا لایبری SQLite asset helper ؟
دقیقا دیتابیس :لبخندساده:
چون تاحالا استفاده نکردم برام جا نیوفتاده تو چه مواری استفاده میشه ازش
یسری نیاز های خاص همیشه باعث ایجاد پروژه میشن.
میخواستم موارد استفاده شو بدونم و اینکه چه نیاز هایی رو برطرف میکنه :لبخندساده:
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
دیتابیس یا به زبون خودمون پایگاه داده، واسه ذخیره اطلاعات زیاد و دسترسی بهشون و تغییر راحت اطلاعات استفاده میشه
به عنوان مثال اطلاعات کارمندان یک اداره رو میتونید توی دیتابیس ذخیره کنید که هم راحت بهش دسترسی داشته باشید و هم راحت بتونید اونا رو تغییر بدید یا حذف کنید
یا یک مثال خیلی ساده متن یک کتاب رو داخل دیتابیس بریزید، اینطوری علاوه بر نظم توی نگهداری اطلاعات، میتونید از قابلیت جستجو هم بهره ببرید
کلا فواید زیادی داره، یک پروژه بزرگ رو خیلی سخت میشه بدون دیتابیس پیاده سازی کرد
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
poorman
دیتابیس یا به زبون خودمون پایگاه داده، واسه ذخیره اطلاعات زیاد و دسترسی بهشون و تغییر راحت اطلاعات استفاده میشه
به عنوان مثال اطلاعات کارمندان یک اداره رو میتونید توی دیتابیس ذخیره کنید که هم راحت بهش دسترسی داشته باشید و هم راحت بتونید اونا رو تغییر بدید یا حذف کنید
یا یک مثال خیلی ساده متن یک کتاب رو داخل دیتابیس بریزید، اینطوری علاوه بر نظم توی نگهداری اطلاعات، میتونید از قابلیت جستجو هم بهره ببرید
کلا فواید زیادی داره، یک پروژه بزرگ رو خیلی سخت میشه بدون دیتابیس پیاده سازی کرد
خیلی جامع و کامل بود ، دیدم بازتر شد نسبت به قبل :لبخندساده:
این اطلاعات فقط از جنس متن میتونن باشن یا چیز دیگه ای ام میتونن باشن
مثلا تو همون اطلاعات کارمندان یه اداره میتونیم عکس کارمندامونم تو دیتابیس داشته باشیم ؟ یا صدا یا هر نوع ایتم دیگه ای ...
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
انواع زیادی از اطلاعات رو میشه توی دیتابیس ذخیره کرد
عکس به صورت بایت توی دیتابیس ذخیره میشه و میشه راحت ازش خوند
اطلاعات منطقی مثل true, false و بیشتر انواع داده رو میتونید توی دیتابیس ذخیره کنید
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
دوستان من یه دیتابیس ساختم که 7تا تیبل داره.
میخوام هر کدوم از اونا رو داخل یه لیست ویو نمایش بدم.
میشه راهنماییم کنید از همون اول چکار کنم؟
من تازه کار هستم و با دیتابیس کار نکردم.تمام پستها رو هم خوندم اما بازم نتونستم پیاده سازی کنم.
لطفا راهنماییم کنید.متشکرم
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
narvanco
دوستان من یه دیتابیس ساختم که 7تا تیبل داره.
میخوام هر کدوم از اونا رو داخل یه لیست ویو نمایش بدم.
میشه راهنماییم کنید از همون اول چکار کنم؟
من تازه کار هستم و با دیتابیس کار نکردم.تمام پستها رو هم خوندم اما بازم نتونستم پیاده سازی کنم.
لطفا راهنماییم کنید.متشکرم
دوست عزیز شما توی کدوم قسمت مشکل دارید ؟
دیتابیستون آماده هست یا از طریق کد ساختید ؟
تا حالا با لیست ویو کار کردید ؟
اگر با لیست ویو کار کردید، توی پست اول، قسمت خواندن اطلاعات، من توضیح دادم که چطور اطلاعات رو از یک تیبل داخل آرایه بریزید، بعد از اینکه شما اطلاعات رو داخل آرایه ریختید خیلی راحت اونا رو میفرستید به آداپتر لیست ویو خودتون و نمایش میدید
میتونید از نمونه برنامه های آماده هم استفاده کنید تا کمک بگیرید برای پروژتون
https://barnamenevis.org/showthread.p...=1#post2016418
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
ممنونم از توجهتون
بله دیتابیسم آمادست
مشکل من اینه که واسه 7تا تیبل نمیدونم باید چجوری بیارم؟
بله قبل از اینکه سوالمو مطرح کنم این نمونه رو گرفتم.اما اونم فقط یک تیبل داره و نتونستم مشکلمو باهاش رفع کنم.
واسه اینکه 7تا تیبل دارم باید اونا رو چطور فراخوانی کنم؟
بله با لیست ویو کار کردم اما تا الان با آرایه لیست ویومو پر میکردم.
این هم همینطور پر میشه؟
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
شما میخواین اطلاعات هر 7 تا تیبل رو با هم بریزید توی لیست ویو ؟ یا اینکه هر کدوم رو توی یک اکتیویتی و یک لیست ویو جدا نمایش بدید ؟
اگر میخواین هرکدوم رو جدا نمایش بدید که کار مثل قبله و هیچ فرقی نداره، فقط باید اسم تیبل عوض شه
اگر میخواین همه رو با هم نمایش بدید، شما باید این کار رو برای هر تیبل انجام بدید اما به این دلیل که شما ممکنه ندونید چقدر اطلاعات دارید که فضای مشخصی از آرایه رو بهش اختصاص بدید
بهتره ابتدا اطلاعات رو داخل arrayList بریزید، یعنی ابتدا واسه تیبل اول کوئری مینویسید و اطلاعاتش رو داخل arrayList اضافه میکنید، بعد دوباره برای تیبل دوم همینکار رو میکنید و تا تیبل آخر
حالا arrayList شما حاوی اطلاعاتتون هست، آرایه خودتون رو براساس سایز arrayList دوباره سازی کنید و اطلاعات رو از arrayList بریزید داخل آرایه ( توسط یک حلقه )
البته اگر شما کار با کاستوم آداپتر لیست ویو رو یاد دارید میتونید با انجام یکسری تغییرات به جای اینکه ورودی آداپترتون آرایه باشه، همون arrayList رو مستقیم بفرستید به آداپتر و از انجام محاسبات اضافی پیشگیری کنید
---------------------------------------------------------------
برای توضیح بیشتر بهتره بگم که آرایه نیاز داره که فضای مشخصی داشته باشه و وقتی فضاش مشخص شد نمیتونیم بیشتر از اون مقدار بدیم بهش
اما arrayList یک نوع آرایه بدون محدودیت فضاست، ما میتونیم بدون مشخص کردن تعداد خونه ها، هر اندازه که خواستیم به اون اضافه کنیم و البته یکسری قابلیت های خوب دیگه هم داره
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
خیلی خیلی ممنونم از وقتی که میزارید.
بله هر تیبل توی یه لیست جداگانه نمایش داده میشه.
پس فقط لازمه توی هر اکتیویتی نام جدول رو تغییر بدم؟درسته؟ با توجه به اینکه ستونهای تیبلها یک نوع هستند.
انشاالله شروع میکنم و دوباره میسازم.قبلا که چندبار ساختم نشد.یه بار صفحه اومد اما اطلاعات رو از دیتابیس نخوند و بار دوم هم که اصلا تا اکتیویتی میخواد بیاد بسته میشه D:
ممنونم از وقتی که گذاشتید.
در ضمن آقا ، هم شهری هم هستیماا!!
موفق باشید
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
آقا عذر میخوام یه سوال دیگه
ببخشید
این نام دیتابیس منظور چیه؟
توی ساخت دیتابیس بهش دادیم؟ یا یک نامی که تو کلاس دیتابیس میسازیم و اصلا ربطی به اون نامی که موقع ساختن دیتابیس آماده دادیم نداره؟
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
شما اگه از دیتابیس آماده استفاده میکنید، توی پست اول فقط از قسمت وارد کردن اطلاعات در جدول به بعد استفاده کنید
چون قبل از اون دارم ساخت دیتابیس داخل خود اکلیپس و باز کردنش رو توضیح میدم
توی دیتابیس آماده اسم فایلتون رو که با پسوند .db.zip تعریف میکنید و توی کلاس دیتابیس هم اسم رو با پسوند .db مینویسید، بعد از انجام اینکارا، شما دیگه هیچ کاری با اسم دیتابیس ندارید
فقط توی اکتیویتی میگید mydb = mydatabase.getReadable
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
ممنونم از لطفتون.بزرگواری کردید
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
اگه ممکنه یه تکه کد بزارید که من چطوری اطلاعات cursor رو تو listview نشون بدم -- مثال کامل نمیخوام چون تو مثال کامل هر کسی از روش خودش همه جای برنامه رو تغییر داده و این منو گیج میکنه -- مرسی
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
ebrahim1988
اگه ممکنه یه تکه کد بزارید که من چطوری اطلاعات cursor رو تو listview نشون بدم -- مثال کامل نمیخوام چون تو مثال کامل هر کسی از روش خودش همه جای برنامه رو تغییر داده و این منو گیج میکنه -- مرسی
این چیزی که شما میخواید اگر یک لیست با یک آیتم تکس ( لیست ساده ) باشه مشکلی نیست، اما اگر مثال یک لیست ویو کاستوم رو میخواین کدهاش یک تکه نیست، 2 تا کلاس و xml هست و راهی نیست جز اینکه از مثال های آماده استفاده کنید
توی یک لیست ساده میشه با 4 تا خط کد لیست رو پیاده سازی کرد، اما توی لیست ویو کاستوم شما باید یک کلاس آداپتر داشته باشید و اونجا آیتم های لیست رو مقدار بدید
مثال های آماده رو اگر سعی کنید قشنگ آنالیز کنید گیج نمیشید، فقط باید یکم وقت بذارید دیگه
من یک مثال خیلی ساده میذارم اینجا امیدوارم کمک کنه، این مثال از جدول شما اطلاعات ستون اول رو میخونه و داخل لیست نمایش میده
import android.app.Activity;import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class mesal_list extends Activity {
ListView listView ;
SQLiteDatabase mydb;
private static String DBNAME = "PERSONS"; // اگر دیتابیس رو داخل اکلیپس ساختید اسمش رو اینجا مشخص کنید
private static String TABLE = "MY_TABLE"; // THIS IS THE TABLE NAME
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.your_layout);
listView = (ListView) findViewById(R.id.listView1);
// اگر دیتابیس رو داخل اکلیپس ساختید از این روش شیء دیتابیس رو مقدار بدید
mydb = openOrCreateDatabase(DBNAME, Context.MODE_PRIVATE,null);
// اگر دیتابیستون آماده هست از روش های گفته شده در قسمت دیتابیس آماده استفاده کنید
// اینجا تمام اطلاعات رو از جدول میخونیم
// این کوئری میتونه بر اساس نیاز شما تغییر پیدا کنه
// میتونید تنها ستونهای مورد نظرتون رو انتخاب کنید یا با گذاشتن شرط فقط سطرهای واجد شرط رو انتخاب کنید
Cursor allrows = mydb.rawQuery("SELECT * FROM "+ TABLE, null);
String[] NAME = new String[allrows.getCount()];
int i = 0;
if(allrows.moveToFirst()){
do{
// اینجا فقط اطلاعات ستون اول خوانده میشود
// بر اساس نیاز شماره داخل تابع گت استرینگ را تغییر دهید
NAME[i] = allrows.getString(0);
i++;
}
while(allrows.moveToNext());
}
allrows.close();
mydb.close();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, android.R.id.text1, NAME);
listView.setAdapter(adapter);
}
}
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
آقای poorman ؟
میشه تقاضا کنم اگه ممکنه یه نمونه برنامه از دیتابیس که 2تا جدول داره و محتویات یک ستون آنها در لیست ویو فراخوانی میکنه در دو صفحه رو معرفی کنید یا در صورت امکان خودتون لطف کنید.چند هفته است نمیتونم انجامش بدم.خیلی ضروریه.
فکر میکنم سوال خیلی از دوستان دیگمون هم باشه
خیلی ممنونم ازتون
خدا به علم شما برکت بیش از این بده
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
narvanco
آقای poorman ؟
میشه تقاضا کنم اگه ممکنه یه نمونه برنامه از دیتابیس که 2تا جدول داره و محتویات یک ستون آنها در لیست ویو فراخوانی میکنه در دو صفحه رو معرفی کنید یا در صورت امکان خودتون لطف کنید.چند هفته است نمیتونم انجامش بدم.خیلی ضروریه.
فکر میکنم سوال خیلی از دوستان دیگمون هم باشه
خیلی ممنونم ازتون
خدا به علم شما برکت بیش از این بده
والا من خیلی درگیرم، شما لطف کنید یک پروژه نمونه بسازید از چیزی که میخواین و تا جایی که تونستید پیاده سازی کنید
پروژه رو بذارید اینجا تا من اشکالاتش رو رفع کنم، هم به شما کمک بشه، هم به بقیه دوستان اگر چنین مشکلی دارن
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
سلام poorman جان
من میخوام رو یه پروژه پیامک کار کنم
میخواستم بدونم دیتابیس را باید چطوری بسازم؟
مثلا 10 تا table (برای هر موضوع یکی)درست کنم که تو هر table یه ستون متن و یه ستون علاقه مندی ها بزارم ؟
یا اینکه باید یه table درست کنم در 20 تا ستون توش بزارم و هر دو ستون یکی موضوع پیامک و دیگری علاقه مندی برای اون موضوع؟
کدومش درسته؟
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
hamedjj
سلام
poorman جان
من میخوام رو یه پروژه پیامک کار کنم
میخواستم بدونم دیتابیس را باید چطوری بسازم؟
مثلا 10 تا table (برای هر موضوع یکی)درست کنم که تو هر table یه ستون متن و یه ستون علاقه مندی ها بزارم ؟
یا اینکه باید یه table درست کنم در 20 تا ستون توش بزارم و هر دو ستون یکی موضوع پیامک و دیگری علاقه مندی برای اون موضوع؟
کدومش درسته؟
سلام
اول بذار تشکر کنم که اومدی پرسیدی، چون من یک برنامه توی بازار دیدم که بنده خدا سازندش واقعا معماری خنده داری واسه دیتابیسش داشت
یک کتاب بود با 15 تا فصل، این اومده بود 15 تا ستون گذاشته بود واسه هرفصل یک ستون، بعد اینا رو مقدار داده بود و ...
البته اینو بگم من اصلا توی دیتابیس خودم رو حرفه ای نمیدونم
حالا بیخیال
آقا برنامه پیامک شما اگر تعداد رکوردهات زیاد هست، یعنی 30-40 هزار تا پیامک داری، از نظر سرعت در سرچ و ... با فرض اینکه 20 موضوع داری، بهتره که 20 تا تیبل داشته باشی
اگر تعداد کمه یا به هر دلیلی حال و حوصله نداری، شما دو تا تیبل میسازی، توی یکی از شماره 1 تا 20 موضوعات رو وارد میکنی ( دو تا ستون، یکی آیدی، یکی اسم موضوع)
توی جدول دوم که پیامک هات رو وارد میکنی، یک ستون میذاری واسه موضوع، بعد هر پیامک رو میگی موضوعش شماره چنده
توی برنامه هم خیلی راحت select میکنی رکوردهایی رو که موضوعشون شماره فلان هست
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
پس همون روش اولو درست میکنم چون 10000 تا هست.
یه سوال دیگه اینه که خوب تو صفحه اصلی یه لیست ویو داریم که نام موضوعات را توش قرار میدیم
تو کلاس دوم هم که لیست پیامک ها با کلیک روی آیتم های لیست میاد
کلاس دوم که لیست پیام ها توش هست یه کلاس arrayadapter هم کنار خودش داره
چطور باید این table ها را در این کلاس معرفی کنم
تو لیست موضوعات که خو میدونم با putExtra مقداری از اکتیویتی اول به دوم میفرستی و در دومی دریافت میکنی که اگه اولی کلیک شد اینو نشون بده یا دومی اینو و...
ولی دیتابیس ما در کلاس array adapter معرفی میشه که در لیست ویو کلاس دیگری نمایش داده میشه
متد بالا هم که گفتم مقدار داده را به کلاسی که در اینتنت معرفی میکنی میفرسته
اینو باید چیکار کنیم؟
یعنی :
Intent intent = new Intent(this, SmsList.class);
intent.putExtra("button", 101);
startActivity(intent);
و تو کلاس adapter یک table را تعریف کردیم
Cursor cur = mydb.rawQuery("SELECT rowid,matn,favorite FROM sms WHERE rowid='"+values[position]+"'", null);
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
من که نفهمیدم چی سوال کردی :لبخند:
الان کل مشکلت اینه که چطور به کلاس آداپتر لیست ویو بفهمونی داره با کدوم تیبل کار میکنه ؟
یک متغیر جهانی بذار، هر آیتمی که انتخاب شد، موقعیتش رو توی اون ذخیره کن
توی کلاس آداپتر هم اون موقعیت رو بگیر
درست فهمیدم سوالت رو یا نه ؟؟؟
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
poorman
من که نفهمیدم چی سوال کردی :لبخند:
الان کل مشکلت اینه که چطور به کلاس آداپتر لیست ویو بفهمونی داره با کدوم تیبل کار میکنه ؟
یک متغیر جهانی بذار، هر آیتمی که انتخاب شد، موقعیتش رو توی اون ذخیره کن
توی کلاس آداپتر هم اون موقعیت رو بگیر
درست فهمیدم سوالت رو یا نه ؟؟؟
آره دقیقا درست فهمیدی
فقط من دقیقا جوابتو نفهمیدم :لبخند:
تونستی همین جوابو همراه با دو خط کد نشون بده متوجه بشم
فدا
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
hamedjj
آره دقیقا درست فهمیدی
فقط من دقیقا جوابتو نفهمیدم :لبخند:
تونستی همین جوابو همراه با دو خط کد نشون بده متوجه بشم
فدا
آقا حل شد
دمت گرم .. فاز دادی
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
من یه کلاس درست کردم به اسم علاقه مندی که میخوام آیتم هایی که به علاقه مندی اضافه شد (در تمام table ها) را در این کلاس نشون بدم
باید چطور این کار را بکنم؟
تو هر table یه ستون با نام favorite ساختم که مقدارش به yes تبدیل میشه
میشه اینطور نوشت؟ چند تا تیبل را با هم فراخونی کرد
Cursor cursor = mydb.rawQuery("select rowid from table1,table2,table3,table4 where favorite = 'yes'" , null);
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
فکر کنم باید از دستور GROUP BY استفاده کرد . ولی بازم ارور میده .. شاید درست ننوشتمش
این لینک را ببینید
http://stackoverflow.com/questions/1...sqlitedatabase
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
hamedjj
من یه کلاس درست کردم به اسم علاقه مندی که میخوام آیتم هایی که به علاقه مندی اضافه شد (در تمام table ها) را در این کلاس نشون بدم
باید چطور این کار را بکنم؟
تو هر table یه ستون با نام favorite ساختم که مقدارش به yes تبدیل میشه
میشه اینطور نوشت؟ چند تا تیبل را با هم فراخونی کرد
Cursor cursor = mydb.rawQuery("select rowid from table1,table2,table3,table4 where favorite = 'yes'" , null);
نه اینطوری که نمیشه از چند تا تیبل خوند، کوئری غلطه
نقل قول:
نوشته شده توسط
hamedjj
دستور group by برای گروه بندی کردنه، اصلا ربطی به ماجرای چند تا تیبل نداره
برای اینکه از چند تا تیبل یکجا بخونی باید از دستور UNION استفاده کنی، من خودم تا حالا ازش استفاده نکردم چون نیاز نداشتم
این لینک میتونه کمکت کنه
http://www.w3schools.com/sql/sql_union.asp
اگر به هر دلیلی نتونستی، من خودم اسم جدول ها رو میریزم توی یک آرایه، بعد توی یک حلقه هی از هر جدول SELECT میکنم و میریزم توی ListArray
راه حل درستی شاید نباشه، اما حوصله ندارم چیز دیگه رو پیدا سازی کنم :لبخند:
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
union مطمئنی درسته؟ عملگر UNION به صورت پیش فرض فقط مقادیر متمایز را انتخاب می کنه
UNION ALL هم که همه رو
فکر کنم باید از INNER JOIN استفاده کنم:
البته یکی از بچه ها گفته از این گرامر استفاده کن :
SELECT Table1.Column1 , Table2.Column1 [,Table3.Column1 ...]
FROM Table1,Table2 [,Table3.Column1 ...]
WHERE Table1.Column1==Table2.Column1 [AND OR ... other Conditions]
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
حرفت درست بود آخرش را نخوندم
پاسخ:
SELECT rowid FROM table1
WHERE favorite='yes'
UNION ALL
SELECT rowid FROM table2
WHERE favorite='yes'
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
ویرایش : تا من اومدم جواب بدم خودت جواب درست رو گفتی دیگه :لبخندساده:
---------------------------------------------------------------------
گفتم که من استفاده نکردم، ولی JOIN هم کاربردش متفاوت هست، برای وقتی هست که میخوای دو تا تیبل رو با هم میکس کنی
این کوئری که یکی از بچه ها گفته رو فک نمیکنم جواب بده، یه جورایی مثل همون JOIN هست
الان از تست کردن که کسی ضرر نمیکنه، دو تا جدول رو با هم UNION ALL کن ببین چی میشه
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
poorman
ویرایش : تا من اومدم جواب بدم خودت جواب درست رو گفتی دیگه :لبخندساده:
---------------------------------------------------------------------
گفتم که من استفاده نکردم، ولی JOIN هم کاربردش متفاوت هست، برای وقتی هست که میخوای دو تا تیبل رو با هم میکس کنی
این کوئری که یکی از بچه ها گفته رو فک نمیکنم جواب بده، یه جورایی مثل همون JOIN هست
الان از تست کردن که کسی ضرر نمیکنه، دو تا جدول رو با هم UNION ALL کن ببین چی میشه
حرفت درسته join با هم میکس میکنه
باید UNION ALL همراه با WHERE قرار میدادم که مقادیر yes را بگیره
من آخر سر این دیتابیس خودمو دار میزنم:عصبانی++: .. واقعا دردسره
بازم فدایی داری :تشویق:
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
سلام دوستان
لطفا راهنماییم کنید چطوری میشه مکان اسکرول رو در دیتابیس ذخیره کرد تا وقتی از لیست به یه مطلب میریم و برمیگردیم دوباره لیست از اول شروع نشه و از همونجایی که بودیم ادامه پیدا کنه.
ممنونم