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

ایجاد دکمه " دیگه نشون نده "  یا " dont show again "

sadra  11 سال پیش  11 سال پیش
+5 0

سلام. ظهر همتون بخیر

بنده یه تابع تعریف کردم. که هروقت روی دکمه بازگشت کلیک شد ( onBackPressed ) یه دیالوگ باز بشه. بعد توی اون دیالوگ گفتم که هروقت روی کلمه " دیگه نشون نده " کلیک شد، توسط SharedPrefrencess عدد 1 توی یه فیلدی ذخیره بشه. حالا موقعی که دوباره کاربر برنامه رو اجرا می کنه و دکمه Back رو میزنه، این از تو SharedPrefrencess چک میکنه اگه فیلد عدد 1 بود، دیگه دیالوگ رو نشون نده. همه چی طبق برنامه پیش میره. اما وقتی یه تغییری تو برنامه می دم و eClipse رو ذخیره میکنم و رو امولاتور اجرا می کنم، دیگه اون دستور ایف کار نمیکنه یا بهتر بگم shared prefrences نمی دونم چه بلایی سرش میاد!

کد oBackPressed:

 @Override
public void onBackPressed() {
SharedPreferences pref = getApplicationContext().getSharedPreferences("Votecheck", 0);
Editor editor = pref.edit();
checkme=pref.getString("check_show", null);

if(checkme=="1"){
finish();
}else{
openAlert();
}

}

اینک کد openAlert:

 private void openAlert() {
// For the Holo one on 3.0+ devices, fallback on 1.x/2.x devices:
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
context = new ContextThemeWrapper(Main.this, android.R.style.Theme_Holo_Light);
} else {
context = new ContextThemeWrapper(Main.this, android.R.style.Theme_Dialog);
}

new AlertDialog.Builder(context)
.setTitle("Dialo Tittle")
.setMessage("Dialog Message")

.setNegativeButton("دیگه نشون نده", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// Handle a negative answer
SharedPreferences pref = getApplicationContext().getSharedPreferences("Votecheck", 0);
Editor editor = pref.edit();
editor.putString("check_show", "1");
editor.commit(); // commit changes
finish();
}
})

.show();

}

 

 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
sadra  11 سال پیش
+1 0

خب، مشکل حل شد :D

بجای 1 در فیلد chek_show " یه عبارت استرینگ گذاشتم

درواقع بجای:

editor.putString("check_show","1");

نوشتم:

editor.putString("check_show","false");

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