alireza0391

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

5 ارسال در این موضوع قرار دارد

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

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

مطالب زیادی راجب به 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 باشن.

1 کاربر پسند دیده است

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


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

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;

       }

   }
}

1 کاربر پسند دیده است

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


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

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:

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


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

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری