2011-01-25 21 views
5

En mi aplicación para Android tengo un TextView y un SeekBar. Ambos valores se usan para calcular el resultado con un clic de botón.Capturar valores de SeekBar

El problema es cómo capturar el valor SeekBar y convertirlo en cadena para el cálculo.

El código es el siguiente:

class clicker implements Button.OnClickListener { 
    public void onClick(View v) { 
     String a,b; 
     Integer vis; 
     a = txtbox3.getText().toString(); 
     b = slider1.getContext().toString(); 
     vis = (Integer.parseInt(a)*Integer.parseInt(b))/100; 
     tv.setText(vis.toString()); 
    } 
} 

por favor ayuda. Gracias por adelantado.

Respuesta

24

Usted busca el método getProgress() de la clase ProgressBar como SeekBar es una subclase de ProgressBar.

Así que, básicamente, sería algo así.

int value = seekBar.getProgress(); 

Además no entienden realmente por qué desea convertir un int a una cadena sólo para que pueda convertir esa cadena en un entero después. No tiene ningún sentido.

5

Puede almacenar el valor de progreso en una variable entera global. Luego puede usarlo fácilmente donde quiera. Pruebe este Código. Te ayudará ...

int p=0; 
@Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

final TextView textView=(TextView) findViewById(R.id.t1); 
    final SeekBar seek=(SeekBar) findViewById(R.id.seekBar1); 
final Button button=(Button) findViewById(R.id.button1); 

    seek.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { 

    @Override 
    public void onStopTrackingTouch(SeekBar seekBar) { 
     // TODO Auto-generated method stub 
    } 

    @Override 
    public void onStartTrackingTouch(SeekBar seekBar) { 
     // TODO Auto-generated method stub 
    } 

    @Override 
    public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) { 
     // TODO Auto-generated method stub 
     p=progress; 
    } 
}); 


button.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 

     String a = textView.getText().toString(); 
     vis = (Integer.parseInt(a)*p)/100; 
      text.setText(vis.toString()); 
    } 
}); 
Cuestiones relacionadas