کلیدستان

نسخه‌ی کامل: چگونه اطلاعات مربوط به تغیر فونت و سایز را SharedPreferences میتواند ذخیره کند؟
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام من یه سورس این پایین گذاشتم که توی اون میشه فوت رو عوض کرد و همچنین میشه سایزش رو تغیر داد
حالا مشکلم اینه که وقتی برنامه رو میبندم  و برای دفه بعد میرم توش دوباره باید تنظیمات اعمال بشه
مطالب زیادی راجب به SharedPreferences خوندم اما چیزی که بتونه مشکل منو حل بکنه گیر نیاوردم یا شایدم نفهمیدم
اگ کسی میتونه بم بگه لطفا
سورس
دوست عزیز شما برای ذخیره کردند مثلا سایز متن و ...میتونید از ShareadPereferenced استفاده کنید.فرض کنید در اکتیویتی تنظیمات  مقدار سایز متن تغییر داده شده  توسط کاربر.
و پس از کلیک کردن تنظیمات ذخیره بشود.پس کافیه پس از کلیک کردن  این مقدار رو ذخیره کنید توسط SharadeaPereferenced ..و سپس این مقدار رو در اکتیویتی های دیگه  مورد استفاده قرار بدید. برای ذخیره کردن سایز متن .از یک متد به نام Save استفاده میکنم و برای لود کردن مقدار از متد Load

کد پی‌اچ‌پی:
public void save(int size){
                   
SharedPreferences pref getSharedPreferences("PREF_NAME"Context.MODE_PRIVATE);
                    
SharedPreferences.Editor editor pref.edit();
                    
editor.putInt("size",size );
                    
editor.commit();
            } 

این متد یک ورودی عددی میگیره که همان سایز متن هست .و داخل یک SharedPref ذخیره میکنه.

حالا بعد از ذخیره شدن .میتونید در اکتیویتی های دیگه از این مقدار استفاده کنید.و سایز متن رو تغییر بدید.

کد پی‌اچ‌پی:
private int Load() { 
       
SharedPreferences pref getSharedPreferences("PREF_NAME"Context.MODE_PRIVATE);
 return 
pref.getInt("size"0);


این متد یک عدد برمیگردونه که همون مقدار ذخیره شده در اکتیویتی Setting است.
مثلا فرض کنید میخواید مقداری که کاربر ذخیره کرده با استفاده از متد Save ، در اکیتویتی Main ازش استفاده کنید.

کد پی‌اچ‌پی:
@Override
    
public void onCreate(Bundle savedInstanceState) {
        
super.onCreate(savedInstanceState);
        
setContentView(R.layout.activity_main);
        
   
int size=load();
   
my_text.setTextSize(size);        
        
        } 

(۱۳۹۴/۰۴/۰۲, ۰۳:۰۶ ق.ظ)'داش بهروز' نوشته: [ -> ]دوست عزیز شما برای ذخیره کردند مثلا سایز متن و ...میتونید از ShareadPereferenced استفاده کنید.فرض کنید در اکتیویتی تنظیمات  مقدار سایز متن تغییر داده شده  توسط کاربر.
و پس از کلیک کردن تنظیمات ذخیره بشود.پس کافیه پس از کلیک کردن  این مقدار رو ذخیره کنید توسط SharadeaPereferenced ..و سپس این مقدار رو در اکتیویتی های دیگه  مورد استفاده قرار بدید. برای ذخیره کردن سایز متن .از یک متد به نام Save استفاده میکنم و برای لود کردن مقدار از متد Load
کد پی‌اچ‌پی:
public void save(int size){
                   
SharedPreferences pref getSharedPreferences("PREF_NAME"Context.MODE_PRIVATE);
                    
SharedPreferences.Editor editor pref.edit();
                    
editor.putInt("size",size );
                    
editor.commit();
            } 
این متد یک ورودی عددی میگیره که همان سایز متن هست .و داخل یک SharedPref ذخیره میکنه.

حالا بعد از ذخیره شدن .میتونید در اکتیویتی های دیگه از این مقدار استفاده کنید.و سایز متن رو تغییر بدید.
کد پی‌اچ‌پی:
private int Load() { 
       
SharedPreferences pref getSharedPreferences("PREF_NAME"Context.MODE_PRIVATE);
 return 
pref.getInt("size"0);

این متد یک عدد برمیگردونه که همون مقدار ذخیره شده در اکتیویتی Setting است.
مثلا فرض کنید میخواید مقداری که کاربر ذخیره کرده با استفاده از متد Save ، در اکیتویتی Main ازش استفاده کنید.
کد پی‌اچ‌پی:
@Override
    
public void onCreate(Bundle savedInstanceState) {
        
super.onCreate(savedInstanceState);
        
setContentView(R.layout.activity_main);
        
   
int size=load();
   
my_text.setTextSize(size);        
        
        } 


 

~~دوست من ، من واقعا سپاسگذارم از شما
 اما واقعیش چون من یه دوهفته میشه شروع کردم و یه حجم وسیعی یادگیری داشتم همینه که یکم گیجم Angel
 لطفا اگه میشه این کار رو شما توی سورسی که من گذاشتم انجام بدین بعدش تغیرات رو به صورت یه سورس دیگه بم دید که خودم انالیزش کنم و متوجه موضوع بشم، اینطوری هیچی نمیفهممSmile
و یه چیز دیگه منظور شما در واقع اینه که ما میتونیم یه سری اطلاعات رو (از قبیل اندازه و نوع فونت) رو بهش بدیم و توی اکتیویتی های مختلف لودش کنیم درسته؟ ینی نیازی نیست مثلا اگه 200 تکست ویو داریم ایدی تک تک اونارو بدیم به قسمت تغیر فونت و تغیر سایز میتونیم توی اکتیویتی مخصوص خودشون اونها رو لود کنیم؟ اگه این طوری بود و اگه باب میلتون بود حتما برام مثالش رو توی سورس (اگه خواستین بدین سورسو)واسم بزنید 

 بازم ببخشید ترو خدا UndecidedUndecided
دوست عزیز اگر قوانین انجمن خونده باشید..در این انجمن  ارائه سورس کد آماده و ..وجود نداره. پس همچین درخواستهایی داخل انجمن پاسخ داده نمیشه.
درمورده سوال دوم هم.احتیاجی نیست کل آی دی ها رو بفرستید به داخل اکتیویتی تنظیمات..همه ی موارد رو در اکتیویتی خودشون با این مقادیر لود شده ،تنظیم کنید
(۱۳۹۴/۰۴/۰۳, ۰۳:۱۹ ق.ظ)'داش بهروز' نوشته: [ -> ]دوست عزیز اگر قوانین انجمن خونده باشید..در این انجمن  ارائه سورس کد آماده و ..وجود نداره. پس همچین درخواستهایی داخل انجمن پاسخ داده نمیشه.
درمورده سوال دوم هم.احتیاجی نیست کل آی دی ها رو بفرستید به داخل اکتیویتی تنظیمات..همه ی موارد رو در اکتیویتی خودشون با این مقادیر لود شده ،تنظیم کنید

 

منونم