簡體   English   中英

Android Spinner更改文本大小不會保存狀態

[英]Android Spinner to change text size doesn't save state

  private void onTextSizeSeekBarChange() {
        final TextView tutorialText = (TextView) findViewById(R.id.tutorialText);
        final SeekBar sb = (SeekBar) findViewById(R.id.seekBar);
        sb.setMax(20);
        sb.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
            int p = 0;
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                p = progress;
                tutorialText.setTextSize(p);
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }


            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
                if (p < 20) {
                    sb.setProgress(p);
                }
            }

        });
        }

所以問題是我上面的代碼更改了文本視圖的文本大小。 但是,在來回移動時不會保存狀態,因此會重置文本大小。 我真的是Android新手,不勝感激任何指導或幫助我如何實現這一目標。 我基本上有一個教程應用程序,需要從設置菜單中更改文本,該菜單有一個搜索欄,允許用戶選擇所需的文本大小。 有任何想法嗎?

您可以通過以下方式之一:1)您可以將p的值保存在共享的首選項中,下次訪問時,將檢查p的值並將其設置在textview中2)您可以將值保存在onSavedInstance中,但是問題是,當用戶從后台終止應用程序時,您將失去價值

如果已設置sb.setMax(20); 那你就不需要

if (p < 20) { sb.setProgress(p); }

代碼無用,用戶無法再查找20

你有這樣的代碼

  private void onTextSizeSeekBarChange() {
    final TextView tutorialText = (TextView) findViewById(R.id.tutorialText);

    SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(CONTEXT);
    int p = SP.getInt("key", p);
    tutorialText.setTextSize(p);

    final SeekBar sb = (SeekBar) findViewById(R.id.seekBar);
    sb.setMax(20);
    sb.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
            p = progress;
            tutorialText.setTextSize(p);
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {

        }


        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {

                sb.setProgress(p);
                Editor edit = SP.edit();
                edit.putInt("key", p);
                edit.commit();
        }

    });
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM