Android - Paso de variables de una Activity a una clase

 
Vista:

Paso de variables de una Activity a una clase

Publicado por Tinin183 (1 intervención) el 14/04/2013 18:16:34
Buenas chicos, soy nuevo en el foro y antes de nada presentarme.
Mi Nick es Tinin183 y estoy aki para lo que haga falta. Un saludo para todos.

Bueno pues sin mas voy con mi problema que me tiene loco.

Resulta que tengo una Activity con una variable que he llamado "contador" de tipo float.
Luego tengo una clase que la he llamado lienzo. Pongo el codigo:

package com.example.prueba;
import android.os.Bundle;
import android.view.View;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;

public class Lienzo extends View {

Bundle bundle;
float contadorRojo;

public Lienzo(Context context) {
super(context);
}

System.out.println(contadorRojo)

protected void onDraw(Canvas canvas) {
canvas.drawRGB(255,255,255);
int ancho=canvas.getWidth();

Paint pincelRojo=new Paint();
Paint pincelVerde=new Paint();

pincelRojo.setARGB(255,255,0,0);
canvas.drawRect(0,0,(float) (ancho*contadorRojo),20,pincelRojo);

pincelVerde.setARGB(255,0,255,0);
canvas.drawRect(0,20,ancho,40,pincelVerde);

}
}

Bien pues mi duda es la siguiente.
Como esto es una clase y no una actividad no le puedo mandar datos con un Intent, ademas ya lo he probado y me da error.

Quiero meter en la variable contadorRojo el valor que tiene en la Activity anterior para poder multiplicar el ancho del dispositivo por ese contador que bueno luego se hacen otras cosas con el. Pongo el codigo:

public class PantallaPorcentajeActivity extends Activity {

private float contadorRojo;
private float contadorVerde;
private float sumaContadores;
Bundle bundle;

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.porcentaje);

RelativeLayout layout1 = (RelativeLayout) findViewById(R.id.layout1);
Lienzo fondo = new Lienzo(this);
layout1.addView(fondo);


bundle = getIntent().getExtras();
if(bundle != null){
contadorRojo = bundle.getFloat("contadorRojo");
}

System.out.println(contadorRojo);

}

public float getContadorRojo(){
return contadorRojo;
}
}

Supongamos que en la Activity tiene el valor 8 y en la clase evidentemente tiene el valor 0, pues quiero que contenga el valor 8.
He probado ha crear un objeto de la Activity mediante el siguiente codigo:

PantallaPorcentajeActivity prueba = new PantallaPorcentajeActivity();
y accerder a contadorRojo desde la clase Lienzo con

contador = prueba.contadorRojo;

ya que no es private deberia funcionar, pero cuando saco el valor de contador por consola con un Sustem.out.println(contadorRojo) me da 0.

Alguien me podria decir como paso el valor de la variable de la Activity a la clase????
Gracias de antemano y espero haberme explicado bien.

Un saludo a todos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder