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 20/01/13, 10:22:25
Avatar de LuiTrO
LuiTrO LuiTrO no está en línea
Miembro del foro
Mensajes: 432
Compra y venta: (1)
 
Fecha de registro: ago 2011
Localización: Granada
Mensajes: 432
Modelo de smartphone: Note 2, Galaxy Nexus, Nexus 7, Galaxy ACE
Versión de ROM: Cada 5 min cambio.
Tu operador: Vodafone
Mencionado: 0 comentarios
Tagged: 0 hilos
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
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
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
Avatar de LuiTrO
LuiTrO LuiTrO no está en línea
Miembro del foro
Mensajes: 432
Compra y venta: (1)
 
Fecha de registro: ago 2011
Localización: Granada
Mensajes: 432
Modelo de smartphone: Note 2, Galaxy Nexus, Nexus 7, Galaxy ACE
Versión de ROM: Cada 5 min cambio.
Tu operador: Vodafone
Mencionado: 0 comentarios
Tagged: 0 hilos
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
Avatar de superroko2
superroko2 superroko2 no está en línea
Miembro del foro
Mensajes: 93
 
Fecha de registro: oct 2012
Mensajes: 93
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
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   HTCMania > Todo sobre Android > Programación y Desarrollo para Android

Herramientas

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: 14:19:39 (GMT +2)

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