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

مشکل در صفحه تنظیمات اپلیکیشن

faridddd  10 سال پیش  10 سال پیش
0 0

لینک فایل زیپ

بچه ها من یه صفحه تنظیمات درست کردم که که وقتی میزنم صفحه روشن بمونه درست کار میکنه ولی تغییر فونت درست کار نمیکنه

ممنون میشم اگه راهنمایی کنین.

 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
میرحسین  10 سال پیش
+3 0

با سلام و عرض خسته نباشی 

دلیل عدم تغییر فونت شما در متود putString که در Listener دکمه ای که برای ذخیره قرار دادید میباشد

در آن متود شما یک مقدار را که از کلاس G به نام defaultFontName میباشد را به طور مکرر در putString واریز میکنید به همین دلیل فونت تغییر نمی کند.

defaultFontName = preference.getString("default_font", "b_koodak.ttf");

منظورم کد بالا میباشد

برای برطرف شدن مشکل من به صورت زیر کد کلاس setting شما را تغییر دادم

public class Setting extends Activity {

    private boolean chbt;
    private String tag;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        G.currentActivity = this;
        setContentView(R.layout.setting);

        final CheckBox chb = (CheckBox) findViewById(R.id.chbR);
        Button save = (Button) findViewById(R.id.btnSave);
        TextView txtFont = (TextView) findViewById(R.id.txtFont);
        txtFont.setTypeface(G.defaultFont);
        Button btnFont = (Button) findViewById(R.id.button1);

        btnFont.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                showSelectFontDialog();
            }
        });

        final SharedPreferences shp = getSharedPreferences("sett", MODE_PRIVATE);
        chbt = shp.getBoolean("chk", true);
        chb.setChecked(chbt);

        save.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                SharedPreferences.Editor shpE = shp.edit();
                shpE.putBoolean("chk", chb.isChecked());
                shpE.commit();

                SharedPreferences.Editor editor = G.preference.edit();
                editor.putString("default_font",tag);
                editor.commit();
                Toast.makeText(getApplicationContext(), "تغییرات شما اعمال شد", 1).show();

                finish();// /safhe Setting ro mibande
            }
        });

    }


    public void showSelectFontDialog() {

        final Dialog dialog1 = new Dialog(G.currentActivity);

        dialog1.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
        dialog1.setContentView(R.layout.dialog_font);

        ArrayList<RadioButton> radioBtns1 = new ArrayList<RadioButton>();
        radioBtns1.add((RadioButton) dialog1.findViewById(R.id.radioFontTitr));
        radioBtns1.add((RadioButton) dialog1.findViewById(R.id.radioFontKoodak));
        radioBtns1.add((RadioButton) dialog1.findViewById(R.id.radioFontNazanin));

        for (final RadioButton radio: radioBtns1) {

            Typeface tff = Typeface.createFromAsset(G.context.getAssets(), "fonts/" + (String) radio.getTag());
            radio.setTypeface(tff);
            if (((String) radio.getTag()).equals(G.defaultFontName)) {
                radio.setChecked(true);
            }
            radio.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {

                    //   G.defaultFontName = (String) radio.getTag();
                    //   SharedPreferences.Editor editor = G.preference.edit();
                    //   editor.putString("default_font", G.defaultFontName);
                    //   editor.commit();

                    tag = (String)radio.getTag();
                    dialog1.dismiss();
                }
            });

        }

        dialog1.show();

    }

}

موفق باشید

0 0
ممنون میرحسین بخاطر وقتی که گذاشتی و پاسخ دادی/ فقط میرحسین setting تغییر دادم ولی متوجه نشدم در کلاس G چه تغییری رو باید انجام بدم/ اگه پاسخ بدی ممنونت میشم (10 سال پیش)
0 0
خواهش میکنم کلاس G را تغییری در آن ایجاد نکردم (10 سال پیش)
0 0
بازم ممنون بخاطر جواب (10 سال پیش)

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