Reputation: 1005
I want to change the text size of an edit text using seek bar and every time I close the activity and reopen it the seek bar automatically increase the text size, this is the code:
package com.e_orthodoxy.orthodox_prayers;
public class WakeupActivity extends Activity {
private SharedPreferences prefs;
private SeekBar seekbar;
private EditText edittext;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_wakeup);
seekbar = (SeekBar) findViewById(R.id.seekBar1);
edittext = (EditText) findViewById(R.id.id_wakeup_txt);
prefs = getPreferences(MODE_PRIVATE);
float fs = prefs.getFloat("fontsize", 12);
seekbar.setProgress((int)fs);
edittext.setTextSize(seekbar.getProgress());
seekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar){
prefs = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor ed = prefs.edit();
ed.putFloat("fontsize", edittext.getTextSize());
ed.commit();
}
@Override
public void onStartTrackingTouch(SeekBar seekBar){
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser){
edittext.setTextSize(progress);
}
});
}
@Override
public void onBackPressed() {
Intent intent_wakeup_back = new Intent (WakeupActivity.this, DailyPrayersActivity.class);
startActivity(intent_wakeup_back);
finish();
}
}
Upvotes: 4
Views: 9531
Reputation: 1856
All the code write in your onCreate()
methodm and follow the typecasting (TextView and SeekBar):
SeekBar seekBar =(SeekBar)findViewById(R.id.seekbar);
SharedPreferences prefs = getPreferences(MODE_PRIVATE);
float fs = prefs.getFloat("fontsize", 12);
seekBar.setProgress((int)fs);
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX,seekBar.getProgress());
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX,seekBar.getProgress());
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
SharedPreferences prefs = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor ed = prefs.edit();
ed.putFloat("fontsize", textView.getTextSize());
ed.commit();
}
});
Upvotes: -2
Reputation: 2230
replace setTextSize(float size) with setTextSize(int unit,float size) and use TypedValue.COMPLEX_UNIT_PX for the unit
float fs = prefs.getFloat("fontsize", 12);
seekbar.setProgress((int)fs);
//edittext.setTextSize(seekbar.getProgress());
edittext.setTextSize(TypedValue.COMPLEX_UNIT_PX,seekbar.getProgress());
and don't forget onProgressChanged:
//edittext.setTextSize(progress);
edittext.setTextSize(TypedValue.COMPLEX_UNIT_PX,progress);
Upvotes: 12