【发布时间】:2017-12-23 22:16:17
【问题描述】:
我想将当前文本大小保存为SharedPreferences,并在屏幕方向更改时将其重新设置。
我使用此代码,但是当我更改屏幕方向时,它会使textSize 变大...
package com.example.zz;
import android.app.ActionBar;
import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.util.TypedValue;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
public class MainActivity extends Activity {
TextView text;
float size;
ActionBar actionBar;
private final String TEXT_SIZE = "textsize";
final String MyPref = "preference";
SharedPreferences settings;
Editor editor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text = (TextView) findViewById(R.id.textView1);
settings = this.getSharedPreferences(MyPref, 0);
text.setTextSize(settings.getFloat(TEXT_SIZE, 0));
editor = settings.edit();
}
public void sizeUp(MenuItem item) {
size = text.getTextSize();
text.setTextSize(TypedValue.COMPLEX_UNIT_PX, (float) (size + 5));
}
public void sizeDown(MenuItem item) {
size = text.getTextSize();
text.setTextSize(TypedValue.COMPLEX_UNIT_PX, (float) (size - 5));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.actionbar, menu);
return true;
}
@Override
protected void onStop() {
super.onStop();
SharedPreferences.Editor editor = settings.edit();
editor.putFloat(TEXT_SIZE, text.getTextSize());
editor.commit();
}
}
谢谢。
【问题讨论】:
标签: android sharedpreferences textview text-size