آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

آموزش ساخت علاقه مندی با Shared Perference

یگانه  9 سال پیش  7 سال پیش
+16 0

 

 

سلام من چند وقت بود دنبال ساخت قسمت علاقه مندی با این روش بودم تا به لطف خدا ودوستان موفق شدم گفتم این آموزشو بذرم تا دوستان هم استفاده کنن

فرض کنید ما یک اکتیویتی(1) داریم (حالا ممکن شما 100 تا داشته باشین) تو لایه گرافیگی این اکتیویتی یک Image View داریم که میخایم با کلیک روی این ImageView اولن عکس اون از حالت خاموش به روشن تبدیل بشه بعدش هم بره به اکتیویتی علاقه مندی ها (2) کد اکتیویتی (1) به این صورت هستش

 public class DDActivity extends Activity {


ImageView img_fav;
boolean check;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

img_fav = (ImageView)findViewById(R.id.img_fav);
img_fav.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {

check = G.preference2.getBoolean("KEY_FAV", false);
if(check ==false){

SharedPreferences.Editor edit = G.preference2.edit();
edit.putBoolean("KEY_FAV", true);
edit.commit();
img_fav.setImageResource(R.drawable.on);
Toast.makeText(G.context, "به لیست علاقه مندی اضافه شد", Toast.LENGTH_SHORT).show();


}else if(check==true){
SharedPreferences.Editor edit = G.preference2.edit();
edit.putBoolean("KEY_FAV", false);
edit.commit();
img_fav.setImageResource(R.drawable.off);
Toast.makeText(G.context, "از لیست علاقه مندی حذف شد", Toast.LENGTH_SHORT).show();
}


}
});
}

}

اون بولین که اسمش هست check مقدار Shared Perferences رو میگره  یعنی اگه کلید KEY-FAV تو لیست بود میشه true اگه نبود میشه false حالا شرط میذلریم  اگه check برابر false بود یعنی اون کلید KEY-FAV تو لیست Shared Perfermce نبود بیا Shared Perference ادیت کن مقدارشو بکن true بعدش عکس خاموش تبدیل به روشن کن بعدش یک Toast نشون بده

حالا قسمت else if دقیقا برعکس بالا عمل میکنه حالا کد زیر برای اینه که وقتی از برنامه خارج میشه دوباره میای اکتیویتی(1) باز میکنی چک میکنه مقدار Shared Perference اگه true بود عکس روشن(on) نمایش داده میشه در غیر اینصورت عکس خاموش (off)    ادامه دارد....................

 if(G.preference2.getBoolean("KEY_FAV", false)){
imageView1.setImageResource(R.drawable.fav_act_on);

}else{
imageView1.setImageResource(R.drawable.fav_act);

}

 قسمت دوم

 خوب میریم سراغ اکتیویتی (2) که قرار لیست برگزیده ها رو نشون بده اینو بگم که شما به چند صورت میتونین اکتیویتی هایی که به علاقه مندی اضافه کردین رو تو لیست برگزیده ها نمایش بدین راحترینش که من الان میگم احتمالا و شاید حتما ایراداتی بهش وارده که خودتون ممکنه پیدا و حلش کنین واما کد صفحه ای که قراره علاقه مندی رو نمایش بده من توی اکتیویتی (2) من تو لای ایکس ام ال این صفحه یک textview گذاشتم که با شرایط خاصی setText وبا شرایطی null میشه به اینصورت

  boolean res;
TextView txt;


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.showFav);



res = G.preference3.getBoolean("VAL", false);
if(!res){
if(G.preference2.getBoolean("KEY_FAV", false)){
txt.setText("(موضوع یا سر فصل اکتیویتی (1)");
}
}




 بولین res برای این هست که هر بار اکتیویتی (2) (که قرار لیست برگزیده هارو نشون بده ) اجرا میشه خود به خود چیزی رو اضافه نکنه اگه بولین نباشه هر بار که اکتیویتی 2 اجرا میشه خود بخود TEXTVIEW رو SETTEXT میکنه بعدش مقدار Shared Perference گرفتیم گفتیم اگه true بود یعنی عکس ستاره روشن بود این textview رو settext کن با موضوع اون کتیویتی موضوع رو میتونید دستی وارد کنید یا از Intent ها استفاده کنید در ضمن راه دیگه این که از ListView استفاده کنید برای نمایش علاقه ها
اگه شرط درست نباشه یعنی مقدار shared perference     منفی یا false باشه خود به خود با اجرا اکتیویتی 2 textView خالی میشه

 

التماس دعا

 

 

+4 0
خدا قوت ولی ای کاش به صورت یه نمونه پروژه ارائه میدادین (9 سال پیش)
+1 0
خیلی عالیه این دقیقا همون چیزی هست که من میخوام ولی فقط کاش در قالب یک پروژه ارائه میدادید چون من یکم گیج شدم!!! واقعا به این shared preferences احتیاج دارم ممنون میشم کمک کنید (8 سال پیش)
+1 0
برای هر اکتیویتی باید KEY_FAV در نظر بگیریم؟ (8 سال پیش)
0 0
سلام... ممنون از مطلب خوبتون... لطفا برای این کدها یک پروژه هم میگذاشتید.... بسیار زیاد کارم را راه می انداخت... (7 سال پیش)
0 0
این روش برای استفاده در لیست علاقه مندی ها به نظر من به هیچ عنوان کاربردی نیست. شما باید از دیتابیس استفاده کنید. چون اگر تعداد مورد ها زیاد بشه هندل کردن اون با preferences خیلی کار سخت و کاملا بیهوده ایه (7 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
oral-d  8 سال پیش
0 0

سلام از کد شما استفاده کردم . همه چیز در ابتدا خوب بود تا اینکه سعی کردم با ایجاد یک کلید اکتیویتی دوم (یا همون صفحه علاقه مندی ها ) رو باز کنم . با زدن روشن کردن img_fav درست کار میکنه ولی با زدن دکمه gofav چیزی نمایش داده نمیشه!!!! اینم لینکه سوالم که گذاشتم توی سایت:

لینک


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .