نمایش آیتم های قبلی و بعدی از روی دیتابیس
سلام
من توی برنامه ام یه بانک اطلاعاتی دارم ،یه لیست ویو هم که ایتم هارو در یک اکتیویتی نشون میده و روی هر ایتمی کلیک میکنم متن کلی رو در اکتیوتی که activityshow نام داره نمایش میده حالا می خوام در همین اکتیویتی یعنی ActivityShow که یه textview برای title و یک textview برای متن هست میخوام یه دکمه بزارم ایتم های بعدی رو نمایش بده کسی هست کمک کنه؟درضمن دستورات بانک من در کلاس G هست.
یک آرایه String (یا هر چیز دیگری) درست کنید و با select کردن جدول و با استفاده از do while تک تک row ها را از cursor به آرایه انتقال دهید.
یک فیلد سراسری با مقدار پیش فرض 0 نیز درست کرده و هر بار کلیک که شد، با متد get خانه مربوطه را از آرایه خوانده و یک عدد به فیلد سراسری اضافه کنید. به عنوان مثال:
private ArrayList<String> Name = new ArrayList<String>();
sqlite = db.getWritableDatabase(); Cursor Cursor = sqlite.rawQuery("select * from Table", null); Name.clear();
if(MaddahCursor.moveToFirst()) { do { Name.add(Cursor.getString(Cursor.getColumnIndex("name")));
} while (Cursor.moveToNext()); Cursor.close(); db.close(); sqlite.close(); }
حالا در onClick دکمه:
btnClick.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
String current_Name = Name.get(i);
i++;
}
});
بستگی به ساختار برنامه ت راه حل زیاده
ساده ترین کار اینه که با یه query ساده به ازای شماره رکورد فعلی ، رکورد بعدی رو پیدا کنی
مثلا اگه الان رکورد با شماره 100 داره نشون داده میشه می تونی query بزنی رکورد 101 رو نشون بده (الیته این بهترین راه نیست و باید توجه کنی که اگه رکوردی دیلیت شد پیش بینی کنی.. مثلا بگی اولین رکورد با آی دی بزرگتر از 100 و...)
توی query زدن به حجم اطلاعاتی هم که لود می کنی توجه کن. همه ی گوشی ها یه محدودیت رم دارن که اگه ازش بیرون بزنی برنامه فورس کلوز میشه.
برا خود من پیش اومده بود با دوربین عکس می گرفتم و به صورت داینامیک داخل ایمیج ویو ها لود می کردم. بعد چند تا عکس مموری استفاده شده رو چک کردم، روی اس3 مینی بیشتر از فکر کنم 20 مگ فورس کلوز می داد، روی نوت 2 اگه اشتباه نکنم 45 مگ..
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .