|
||
|
|
|
|||||||
| Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
![]() |
|
|
Herramientas |
|
#1
|
||||
|
||||
|
SeekBar
Buenas tengo una duda sobre SeekBar a ver si me podeis echar un cable.
Como os muestro en la imagen que he subido tengo un SeekBar de 0 a 10 y según muevo se muestra los números en un textView. Al yo cerrar la app y volverla a abrir los valores se reinician como es lógico entonces yo lo que quiero es que se mantengan para ello quiero utilizar las preferencias. Utilizo el método CargarPreferencias y GuardarPreferencias que lo vi de ejemplo en una página con un CheckBoox y ahora no se modificar dichos métodos para mi SeekBar. Proporciono mi código, un saludo y gracias. Código:
package com.a.b;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.SeekBar;
import android.widget.TextView;
public class Valoracion extends Activity{
SeekBar seekBar;
TextView tvCalificacion;
Button btnGuardarValoracion;
@override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_valoracion);
seekBar = (SeekBar) findViewById(R.id.seekBar);
tvCalificacion = (TextView) findViewById(R.id.tvCalificacion);
btnGuardarValoracion = (Button) findViewById(R.id.btnGuardarValoracion);
CargarPreferencias();
btnGuardarValoracion.setOnClickListener(new View.OnClickListener() {
@override
public void onClick(View view) {
GuardarPreferencias();
}
});
tvCalificacion.setText("Calificación: "+seekBar.getProgress()+" / "+seekBar.getMax());
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
tvCalificacion.setText("Calificación: "+progress+" / "+seekBar.getMax());
}
@override
public void onStartTrackingTouch(SeekBar seekBar) {
// When user starts working with control
// Save the progress if initial value is needed.
}
@override
public void onStopTrackingTouch(SeekBar seekBar) {
// When user stops interacting
// Add your own logic here
}
});
}
public void CargarPreferencias() {
SharedPreferences mispreferencias = getSharedPreferences("PreferenciasUsuario", Context.MODE_PRIVATE);
seekBar.setChecked(mispreferencias.getBoolean("checked", false)); //+++++++
}
public void GuardarPreferencias() {
SharedPreferences mispreferencias = getSharedPreferences("PreferenciasUsuario", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = mispreferencias.edit();
boolean valor = seekbar.isChecked(); //+++++++
editor.putBoolean("checked", valor); //+++++++
seekBar.setChecked(mispreferencias.getBoolean("checked",false)); //+++++++
}
}
|
|
|
|
#2
|
||||
|
||||
|
SeekBar hereda de ProgressBar, así que los métodos que buscas están en ProgressBar. setProgress y getProgress, que se le pasa y devuelve un Int respectivamente.
Así que en tu CargarPreferencias tendrías que hacer un setProgress a la SeekBar del campo que te devuelve el getInt de las SharedPreferences. Y al revés en el Guardar, almacenar en el SharedPreferences.Editor un putInt de un getProgress. Por cierto que no se donde habrás cogido el tutorial para guardar el valor del CheckBox, pero está mal, porque falta hacer el commit() al editor para que se almacene realmente. |
|
#3
|
||||
|
||||
|
SeekBar hereda de ProgressBar, así que los métodos que buscas están en ProgressBar. setProgress y getProgress, que se le pasa y devuelve un Int respectivamente.
Así que en tu CargarPreferencias tendrías que hacer un setProgress a la SeekBar del campo que te devuelve el getInt de las SharedPreferences. Y al revés en el Guardar, almacenar en el SharedPreferences.Editor un putInt de un getProgress. Por cierto que no se donde habrás cogido el tutorial para guardar el valor del CheckBox, pero está mal, porque falta hacer el commit() al editor para que se almacene realmente. ![]() ![]() .Lo del commit() si que venía en la página pero había olvidado copiarlo .Miré pongo el código como queda: Código:
public void CargarPreferencias() {
SharedPreferences mispreferencias = getSharedPreferences("PreferenciasUsuario", Context.MODE_PRIVATE);
seekBar.setProgress(mispreferencias.getInt("PreferenciasUsuario", Context.MODE_PRIVATE));
}
public void GuardarPreferencias() {
SharedPreferences mispreferencias = getSharedPreferences("PreferenciasUsuario", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = mispreferencias.edit();
int valor = seekBar.getProgress();
editor.putInt("PreferenciasUsuario",valor);
editor.commit();
}
|
![]() |
Estás aquí
|
||||||
|
||||||
| Herramientas | |