رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

چگونه اطلاعات مربوط به تغیر فونت و سایز را SharedPreferences میتواند ذخیره کند؟


پست های پیشنهاد شده

سلام من یه سورس این پایین گذاشتم که توی اون میشه فوت رو عوض کرد و همچنین میشه سایزش رو تغیر داد

حالا مشکلم اینه که وقتی برنامه رو میبندم  و برای دفه بعد میرم توش دوباره باید تنظیمات اعمال بشه

مطالب زیادی راجب به SharedPreferences خوندم اما چیزی که بتونه مشکل منو حل بکنه گیر نیاوردم یا شایدم نفهمیدم

اگ کسی میتونه بم بگه لطفاhuh.gifhuh.gif

سورس

لینک ارسال
به اشتراک گذاری در سایت های دیگر

import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;


public class YourActivity extends ActionBarActivity {

   private SharedPreferences sharedPreferences;
   private SharedPreferences.Editor editor;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_your);

       sharedPreferences = getSharedPreferences("key_pref", MODE_PRIVATE);
       editor = sharedPreferences.edit();

       // for saving ur info (font , size )
       editor.putString("key_font", "font_mono").commit();
       editor.putInt("key_size", 18).commit();
   }
   
   // Load info
   @Override
   public void onClickLoad(View view) {
       String font = sharedPreferences.getString("key_font", "font_sand_serif"); // default font is font_sand_serif if u dont save anything
       int size = sharedPreferences.getInt("key_size", 25); // default size is 25 if u dont save anything
   }
}

سلام چند تا نکته : با این کد اگه تو هر activity , fragment و ... باشی کافیه که این کد رو بزنی  تا load  یا save کنی.

sharedPreferences = getSharedPreferences("key_pref", MODE_PRIVATE);
       editor = sharedPreferences.edit();

نکته : به key ها دقت کن که باید سر جای خودشون قرار بدی و حتما باید Final باشن.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;


public class YourActivity extends ActionBarActivity {

   private SharedPreferences sharedPreferences;
   private SharedPreferences.Editor editor;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_your);

       sharedPreferences = getSharedPreferences("key_pref", MODE_PRIVATE);
       editor = sharedPreferences.edit();

       // for saving ur info (font , size )
       editor.putString("key_font", "font_mono").commit();
       editor.putInt("key_size", 18).commit();
   }
   
   // Load info
   @Override
   public void onClickLoad(View view) {
       String font = sharedPreferences.getString("key_font", "font_sand_serif"); // default font is font_sand_serif if u dont save anything
       int size = sharedPreferences.getInt("key_size", 25); // default size is 25 if u dont save anything
   }
}

سلام چند تا نکته : با این کد اگه تو هر activity , fragment و ... باشی کافیه که این کد رو بزنی  تا load  یا save کنی.

sharedPreferences = getSharedPreferences("key_pref", MODE_PRIVATE);
       editor = sharedPreferences.edit();

نکته : به key ها دقت کن که باید سر جای خودشون قرار بدی و حتما باید Final باشن.

دوست من ، من واقعا سپاسگذارم از شما

اما واقعیش چون من یه دوهفته میشه شروع کردم و یه حجم وسیعی یادگیری داشتم همینه که یکم گیجم :angel:

لطفا اگه میشه این کار رو شما توی سورسی که من گذاشتم انجام بدین بعدش تغیرات رو به صورت یه سورس دیگه بم دید که خودم انالیزش کنم و متوجه موضوع بشم، اینطوری هیچی نمیفهمم:)

بازم ببخشید ترو خدا:-/:-/

لینک ارسال
به اشتراک گذاری در سایت های دیگر

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;

public class MainActivity extends Activity {

   private SharedPreferences sharedPreferences;
   private SharedPreferences.Editor editor;

   private TextView t1;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);

       sharedPreferences = getSharedPreferences("key_pref", MODE_PRIVATE);
       editor = sharedPreferences.edit();

       t1 = (TextView) findViewById(R.id.textView1);
       Button btnChangeFont = (Button) findViewById(R.id.btnChangeFont);
       btnChangeFont.setOnClickListener(new OnClickListener() {

           @Override
           public void onClick(View arg0) {
               Intent intent = new Intent(MainActivity.this, font.class);
               startActivity(intent);
           }
       });
   }


   protected void setFace() {

       String fonts = sharedPreferences.getString("key_font","Tahoma.TTF");

       Typeface face = Typeface.createFromAsset(getAssets(), "font/" + fonts);

       TextView txtShow = (TextView) findViewById(R.id.txtShow);
       txtShow.setTypeface(face);
       String str = (String) txtShow.getText().toString();
       txtShow.setText(str);

       TextView txtShow1 = (TextView) findViewById(R.id.textView1);
       txtShow1.setTypeface(face);
       String str1 = (String) txtShow1.getText().toString();
       txtShow1.setText(str1);

       TextView txtShow2 = (TextView) findViewById(R.id.btnChangeFont);
       txtShow2.setTypeface(face);
       String str2 = (String) txtShow2.getText().toString();
       txtShow2.setText(str2);

   }


   @Override
   protected void onResume() {
       super.onResume();
       setFace();
       setSize();

       
       final SeekBar sk = (SeekBar) findViewById(R.id.seekBar1);

     
       sk.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

          
           int fontSize = 0;

           @Override
    
           public void onStopTrackingTouch(SeekBar seekBar) {
               // TODO Auto-generated method stub
            
               if (fontSize < 30) {
                 
                   fontSize = 30;
                 
                   sk.setProgress(fontSize);

                   editor.putInt("key_size",fontSize).commit();
               }
           }

           @Override
           public void onStartTrackingTouch(SeekBar seekBar) {
               // TODO Auto-generated method stub
           }

           @Override
           public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
               // TODO Auto-generated method stub

              
               fontSize = progress;

              
               t1.setTextSize(fontSize);

               editor.putInt("key_size",fontSize).commit();
           }
       });
   }

   private void setSize() {

       int size = sharedPreferences.getInt("key_size", 18);
       t1.setTextSize(size);
   }
}

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.RadioGroup;

public class font extends Activity implements RadioGroup.OnCheckedChangeListener {

   private String font;
   RadioGroup rg;

   private SharedPreferences sharedPreferences;
   private SharedPreferences.Editor editor;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.font);

       sharedPreferences = getSharedPreferences("key_pref", MODE_PRIVATE);
       editor = sharedPreferences.edit();

       rg = (RadioGroup) findViewById(R.id.rg);
       rg.setOnCheckedChangeListener(this);
   }


   @Override
   public void onCheckedChanged(RadioGroup group, int CheckedId) {

       switch (CheckedId) {

           case R.id.radio0:
               font = "Tahoma.TTF";
               editor.putString("key_font",font).commit();
               finish();
               break;

           case R.id.radio1:
               font = "FreeStyle.TTF";
               editor.putString("key_font",font).commit();
               finish();
               break;

       }

   }
}

لینک ارسال
به اشتراک گذاری در سایت های دیگر

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;

public class MainActivity extends Activity {

   private SharedPreferences sharedPreferences;
   private SharedPreferences.Editor editor;

   private TextView t1;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);

       sharedPreferences = getSharedPreferences("key_pref", MODE_PRIVATE);
       editor = sharedPreferences.edit();

       t1 = (TextView) findViewById(R.id.textView1);
       Button btnChangeFont = (Button) findViewById(R.id.btnChangeFont);
       btnChangeFont.setOnClickListener(new OnClickListener() {

           @Override
           public void onClick(View arg0) {
               Intent intent = new Intent(MainActivity.this, font.class);
               startActivity(intent);
           }
       });
   }


   protected void setFace() {

       String fonts = sharedPreferences.getString("key_font","Tahoma.TTF");

       Typeface face = Typeface.createFromAsset(getAssets(), "font/" + fonts);

       TextView txtShow = (TextView) findViewById(R.id.txtShow);
       txtShow.setTypeface(face);
       String str = (String) txtShow.getText().toString();
       txtShow.setText(str);

       TextView txtShow1 = (TextView) findViewById(R.id.textView1);
       txtShow1.setTypeface(face);
       String str1 = (String) txtShow1.getText().toString();
       txtShow1.setText(str1);

       TextView txtShow2 = (TextView) findViewById(R.id.btnChangeFont);
       txtShow2.setTypeface(face);
       String str2 = (String) txtShow2.getText().toString();
       txtShow2.setText(str2);

   }


   @Override
   protected void onResume() {
       super.onResume();
       setFace();
       setSize();

       
       final SeekBar sk = (SeekBar) findViewById(R.id.seekBar1);

     
       sk.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

          
           int fontSize = 0;

           @Override
    
           public void onStopTrackingTouch(SeekBar seekBar) {
               // TODO Auto-generated method stub
            
               if (fontSize < 30) {
                 
                   fontSize = 30;
                 
                   sk.setProgress(fontSize);

                   editor.putInt("key_size",fontSize).commit();
               }
           }

           @Override
           public void onStartTrackingTouch(SeekBar seekBar) {
               // TODO Auto-generated method stub
           }

           @Override
           public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
               // TODO Auto-generated method stub

              
               fontSize = progress;

              
               t1.setTextSize(fontSize);

               editor.putInt("key_size",fontSize).commit();
           }
       });
   }

   private void setSize() {

       int size = sharedPreferences.getInt("key_size", 18);
       t1.setTextSize(size);
   }
}

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.RadioGroup;

public class font extends Activity implements RadioGroup.OnCheckedChangeListener {

   private String font;
   RadioGroup rg;

   private SharedPreferences sharedPreferences;
   private SharedPreferences.Editor editor;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.font);

       sharedPreferences = getSharedPreferences("key_pref", MODE_PRIVATE);
       editor = sharedPreferences.edit();

       rg = (RadioGroup) findViewById(R.id.rg);
       rg.setOnCheckedChangeListener(this);
   }


   @Override
   public void onCheckedChanged(RadioGroup group, int CheckedId) {

       switch (CheckedId) {

           case R.id.radio0:
               font = "Tahoma.TTF";
               editor.putString("key_font",font).commit();
               finish();
               break;

           case R.id.radio1:
               font = "FreeStyle.TTF";
               editor.putString("key_font",font).commit();
               finish();
               break;

       }

   }
}

بسیار سپاسگذارم از لطف شما دوست عزیز :heart::heart::heart:

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...