PDA

View Full Version : مشکل فراخونی دیتابیس



mehdiasadi50
شنبه 23 اسفند 1393, 04:57 صبح
با سلام خدمت اساتید محترم.
یه دیتابیس دارم که از سه ستون تشکیل شده ستونها ایدی و عنوان و متن هستید.
تمام مراحل را انجام دادم در لیست ویو عنوان ها ظاهر میشوند که با کلیک روی هر کدوم به عنوان مثال اکتیویتی متن میرم در اکتیویتی متن دو تکست ویو برای نمایش عنوان و متن گذاشتم اما چون تازه کار هستم کدی رو نتونستم پیدا کنم که از دیتای من عنوان و متن رو فراخونی کنه اگه امکان داره در حد آماتور توضیح بدید که مراحل کار چگونه است
با تشکر از همه

Abbas Naghdi
شنبه 23 اسفند 1393, 05:17 صبح
ببین : متن عنوان رو یا ایدی رو ا همون لیست بگیر بعد با استفاده از Intent.putExtra متن رو ارسال کن به Intent یا Activity بعدیبعد تو Activity بعدی بیا از داخل دیتابیس متنی رو بکش بیرون بر اساس عنوانش یا ایدیش که قبلا گرفتی .بعد نمایش بده ... در هر مورد میتونی سرچ کنی تا یاد بگیری مثلا در مورد (Intent.putExtra )

mehdiasadi50
شنبه 23 اسفند 1393, 05:37 صبح
ممنون دوست عزیز.
خیلی کلی توضیح دادی چیز زیادی متوجه نشدم اگه دوستای دیگه میتونن یه نمونه کد بنویسن که بهتر متوجه بشم

mehdiasadi50
یک شنبه 24 اسفند 1393, 00:40 صبح
همه مراحل رو انجام دادم دیتابیس توی لیست ویو ظاهر میشه میخوام تو یه اکتیویتی به عنوان مثال تکست دو تا تکست ویو دارم با عناوین title , text
توی لیست ویو روی هر کدوم از title ها کلیک کنم به اکتیویتی میرم اما تکست رو بلد نیستم فرا خونی کنم اگه امکان داره دوستان یه نمونه کد بنویسن و توضیح بدن برای آموزش من و دوستای دیگه

1masoud1
یک شنبه 24 اسفند 1393, 05:46 صبح
اول میای یه متد می نویسی که تعداد کل رکوردها(سطرهای دیتابیس) رو حساب کنه :



public Integer countAll() {
Cursor cu = mydb.query(Table_name, null, null, null, null, null, null);
int result = cu.getCount();
return result;
}



این متد یه عدد برمیگردونه که اون رو داخل یه متغیر مثلا به نام count ذخیره می کنی این متغیر بعدا تو حلقه for لازمش داریم

حالا یه متد لازمه که بیای شماره ستون رو بهش بدی و اون بیاد محتوای اون ستون رو بخونه :



public String ReadDatabase(int row, int field) {
Cursor cu = mydb.rawQuery("SELECT * FROM Table_name ", null);
cu.moveToPosition(row);
String result = cu.getString(field);
return result;
}





به جای table_name هم باید اسم جدول دیتابیست رو وارد کنی

حالا نیاز به یه حلقه for داری که بیای با استفاده از اون اطلاعات رو از دیتابیس بگیری و در داخل آرایه ذخیره کنی:



for (int i=0 ; i<count ; i++){

title[i] = db.ReadDatabase(i,1);
content[i] = db.ReadDatabase(i,2);
}


اون شماره 1 و 2 که میبینی مشخص کننده شماره ستون های دیتابیس هست مثلا اگر سه ستون id و عنوان و متن داشته باشی به ترتیب شماره هاش میشن 0 و 1 و 2

حالا میتونی عنوان ها رو تو لیست ویو نمایش بدی و با استفاده از متد setOnItemClickListner لیست ویو رو برای رفتن به اکتیوتی دیگه آماده کنی همون طور که میدونی واسه جابه جایی بین اکتیویتی ها از intent استفاده میشه intent ها میتونن با خودشون اطلاعات رو هم با خودشون به اکتیویتی مقصد ببرن که این کار با استفاده از متد putExtra انجام میشه بعدش باید در اکتیوتی مقصد با استفاده متد های getIntent , getExtra اونارو دریافت کنی


lv.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int position, long arg3) {

Intent i = new Intent(Activity1.this, Activity2.class);

i.putExtra("title_database", title[position]);
i.putExtra("content_database", content[position]);


startActivity(i);

}

});



اگه بازم واست سوال پیش اومد مطالب این سایت (http://www.kelidestan.com/android/index.php)که فارسی هم هست واسه شروع میتونه کمکت کنه