View Full Version : نمایش عکس در اکتیویتی (گرفتن آدرس از دیتابیس)
dalmif
سه شنبه 27 آبان 1393, 19:35 عصر
سلام دوستان.
من به یه مشکلی برخوردم.
من می خوام از دیتابیس آدرس عکسم رو بگیرم و اون رو نمایش بدم اما در کد زیر
logo.setBackgroundDrawable(int);
باید تصویر به صورت R.drawable.aa باشد اما من در دیتابیس به صورت تکست همین آدرس رو قرار دادم و وقتی این آدرس رو از دیتابیس میگیرم به صورت String میگیرم دیگه!
حالا دیگه نمی تونم از کد بالا استفاده کنم.
لطفا کمک کنید.
ممنونم
rezaricky
سه شنبه 27 آبان 1393, 20:57 عصر
سلام.
R.drawable.aa از نوع int هست. بهتره تو دیتابیس تون ادرس تصویر رو از نوع int ذخیره کنید تا بازیابی و نمایشش هم ساده تر بشه.
dalmif
سه شنبه 27 آبان 1393, 21:07 عصر
ممنون از پاسختون.من چجوری میتونم R.drawable.aa رو از نوع int قرار بدم.int در دیتابیس فقط عدد هست و امکان نداره که بشه حروف رو درش وارد کرد
rezaricky
سه شنبه 27 آبان 1393, 21:32 عصر
فرض کنید دو تا متد داریم یکی برای ذخبره ادرس و دیگری برای خواندن ادرس :
public void save( int id ) { }
public int load() { }
خب حالا برای ذخیره کردن ادرس این کار رو میکنیم :
int id = R.drawable.aa ;
save( id );
وبرای خواندن از دیتابیس :
int id = load();
logo.setBackgroundDrawable(id);
dalmif
سه شنبه 27 آبان 1393, 21:39 عصر
خیلی ممنون.
حق با شما بود.
اما من از Sqlite Manager در فایرفاکس استفاده می کنم..
با این کد فهمیدم که باید اون عددی هست که به جای همه اینا هست رو بازرم.
مثلا
R.id.textView1 = 235556
پس اگه همون عدد رو بزارم جواب میده
rezaricky
سه شنبه 27 آبان 1393, 21:58 عصر
بله جواب میده .
اما باید در نظر داشته باشی که اگه تصویر تغییر کنه اون عدد هم تغییر میکنه و ممکنه به مشکل بر بخوری .
یه روش دیگه هم استفاده از متد getIdentifier هست که بهتره از اون استفاده کنی :
برای تبدیل نام resource به رشته :
Resources resources = getResources();
String name = resources.getResourceEntryName(R.drawable.icon);
, و برای تبدیلش به int :
int resId = resources.getIdentifier(name, "drawable", "your.package.name");
dalmif
چهارشنبه 28 آبان 1393, 07:01 صبح
خیلی ممنون.
عالی بود.
خدا خیرت بده.
:تشویق::تشویق::تشویق::تشویق:: شویق::تشویق::تشویق::تشویق::ت ویق::تشویق::تشویق:
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.