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

Respuesta
 
Herramientas
  #1  
Viejo 20/01/13, 10:22:25
Array

[xs_avatar]
LuiTrO LuiTrO no está en línea
Miembro del foro
· Votos compra/venta: (1)
 
Fecha de registro: ago 2011
Localización: Granada
Mensajes: 432
Modelo de smartphone: Note 2, Galaxy Nexus, Nexus 7, Galaxy ACE
Tu operador: Vodafone
Problema con los intent

Hola a todos. Estoy haciendo una aplicación para la facultad de una simulación y tengo un problema, a ver si me podeis echar una mano.

La simulación consta de 2 activities:
La primera es una pantalla de ajustes donde podemos poner el valor de una constante (un double) que importo a la segunda activity.

La segunda activity es una animación de la simulación donde trabajaré con esa variable importada, pero el problema es que es al importarla no puedo trabajar con ella.

Aquí os dejo el .java de la segunda actiity:

Código:
package 

import





public class Potencial_1 extends Activity {

    
    
    //Hilo abierto
    Thread hilo=null;
    boolean continuar=true;
    boolean dialogo=false;
    //dt
    int dt=100;
    int tiempo;
    
    
    
//-----------------Variables--------------------
    
    

//-----------------------------------------------    
    
    
    DinamicaView dinamica;
    
    
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
//-------------------------IMPORTO EL BUNDLE-------------
//-------------------------------------------------------      
        
        
        
        dinamica=new DinamicaView(this);
        setContentView(dinamica);
        hilo=new Thread(dinamica);
        hilo.start();
        
        
     
        
    }
    
     

    //Detenemos el hilo si hay pausa
@Override
public void onPause(){
    super.onPause();
    continuar=false;
}
     //Reiniciamos el hilo si volvemos a la aplicación
@Override
public void onResume(){
    super.onResume();
    continuar=true;
    if(hilo==null){
        hilo=new Thread(dinamica);
        hilo.start();
    }
}


//Clase para pintar
class DinamicaView extends View implements Runnable{
    
    Paint Paint0, Paint1,Paint2, Paint3, paintFondo, texto, PaintOnda, PaintPozo;
    Path Onda,Pozo;
    int m, n, m0, n0, size;
    
        
    public DinamicaView(Context context){
    super (context);
    
//--------------------------CONDICIONES INICIALES--------------------
    
    //QUIERO IMPORTAR MI VARIABLE AQUÍ????
//-------------------------------------------------------------------    
        

    

    

    
    //PINCELES
    paintFondo=new Paint();
    .....

    
    }
    
        

//--------------------------------Algoritmo--------------------------------------------------------------------------------//

    public void run(){
        
    
        while(continuar){
        
            //OPERACIONES PARA CREAR LA ANIMACIÓN
            


        tiempo=tiempo+dt;
        
            
    
        //REFRECAMOS
        postInvalidate();
        try{ Thread.sleep(dt); }catch (InterruptedException e){ ; }
    }
    
    } 
        
        
        
        


     
    
//--------------------------------------------------------------------------------------------------------------------------------------------------------//            
//----------------------------------------------------------DIBUJAR EN PANTALLA---------------------------------------------------------------------------//
//--------------------------------------------------------------------------------------------------------------------------------------------------------//    
    
    
    
    @Override
    public void onDraw(Canvas canvas){
        canvas.drawPaint(paintFondo);
        
            
        }
    }
    
}

}
Como veis, importo el Bundle (double) dentro del onCreate, pero luego no puedo trabajar con esa variable dentro de "public DinamicaView(Context context){".

He estado buscando y no se que hacer, siempre me lio con los intent. A ver si me podeis echar una mano con este pequeño problemilla.

MUCHAS GRACIAS.

Código fuente: https://docs.google.com/folder/d/0B_...JqQ0lUVW8/edit

Menu.java: actividad 1
Potencial_1.java: actividad 2

Última edición por LuiTrO Día 20/01/13 a las 14:56:09.
Responder Con Cita


  #2  
Viejo 20/01/13, 12:13:16
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
Si no pones como importas el Double del Bundle dificilmente te podemos ayudar, ya que lo único que has puesto es un triste comentario.

Si la variable Double donde cargas el valor procedente de la activity anterior es global en la Activity puedes usarlo perfectamente en el View.

O también puedes añadir un método setConstante(Double constante) a DinamicaView y justo después de crearla asignarle la constante mediante el método.
Responder Con Cita
  #3  
Viejo 20/01/13, 14:45:19
Array

[xs_avatar]
LuiTrO LuiTrO no está en línea
Miembro del foro
· Votos compra/venta: (1)
 
Fecha de registro: ago 2011
Localización: Granada
Mensajes: 432
Modelo de smartphone: Note 2, Galaxy Nexus, Nexus 7, Galaxy ACE
Tu operador: Vodafone
En la primera actividad exporto el intent, al pulsar un boton. La variable Amplitud toma un valor antes :

Código:
@Override
    public void onClick(View v) {
        
        if(v.getId()==R.id.button1){
            Intent intent1 = new Intent(this, Potencial_1.class);
            intent1.putExtra("NOMBRE", Amplitud);
            intent1.putExtras(intent1);
            startActivity(intent1);
        }
Mientras en la segunda actividad importo el intent en public void onCreate{

Código:
@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
       Intent intent1 = getIntent();
        Bundle myBundle = intent1.getExtras();
        double dob1 = myBundle.getDouble("Amplitud");
        
        
        
        dinamica=new DinamicaView(this);
        setContentView(dinamica);
        hilo=new Thread(dinamica);
        hilo.start();
        
    }
Ahora subo las dos actividades por si quereis echarle un vistazo.

Última edición por LuiTrO Día 20/01/13 a las 22:21:59.
Responder Con Cita
  #4  
Viejo 21/01/13, 20:11:20
Array

[xs_avatar]
superroko2 superroko2 no está en línea
Miembro del foro
 
Fecha de registro: oct 2012
Mensajes: 93
Tu operador: Movistar

Prueba a usar Bundles.

No soy muy experto en esto, pero tengo dos cosas que decir al respecto:

1) Porque haces intent.putExtra y luego intent.putExtras del mismo Intent? No es algo sin sentido? Quizás se hace así eh, pero yo siempre lo he hecho de otra forma.

2) Alguna vez intenté pasar los "Extras" directamente al Intent y tampoco me funcionó, así que yo como siempre usé Bundles. Con eso me refiero a meter todos los datos en un Bundle y luego hacer:

intent.putExtras(bundle);

No sé si me explico.

Prueba a hacerlo, a ver si así te funciona.. fue mi solución una vez.
Responder Con Cita
Respuesta

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



Hora actual: 09:49:54 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /