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  
Viejo 11/02/16, 12:08:02
Avatar de esi92
esi92 esi92 no está en línea
Usuario poco activo
Mensajes: 20
 
Fecha de registro: nov 2015
Mensajes: 20
Modelo de smartphone: Energy Phone Max
Tu operador: Vodafone
Mencionado: 3 comentarios
Tagged: 0 hilos
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));     //+++++++
    }
}
Imágenes Adjuntas
Tipo de Archivo: png aaa.png (54.7 KB, 13 visitas)
Responder Con Cita


  #2  
Viejo 11/02/16, 12:21:15
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
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.
Responder Con Cita
  #3  
Viejo 11/02/16, 13:07:53
Avatar de esi92
esi92 esi92 no está en línea
Usuario poco activo
Mensajes: 20
 
Fecha de registro: nov 2015
Mensajes: 20
Modelo de smartphone: Energy Phone Max
Tu operador: Vodafone
Mencionado: 3 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por kriogeN Ver Mensaje
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.
Buenas pues lo primero muchas gracias hice lo que me dijo y funcionó .
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();
}
Un saludo y gracias por todo
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 04:59:07 (GMT +1)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007