Spanish Multiples Activitys (SOLUCIONADO)

Discussion in 'Spanish Forum' started by Zabatta, Nov 4, 2019.

  1. Zabatta

    Zabatta Member Licensed User

    Hola chicos, soy bastante nuevo en esto, hace poco comencé a programar en B4A porque tengo una gran idea que me gustaría ejecutar, pero no conozco mucho de Basic, sin embargo he estado aprendiendo muchas cosas leyendo el foro y viendo youtube, me gustaría saber donde puedo conseguir que hace cada función, por ejemplo "Rnd(x as int, y as int) genera un valor aleatorio" algo de ese tipo pero con todas ls funciones, métodos, etc.

    Aprovecho la ocasión para preguntar otra cosa, tengo 2 activitys, uso una y cuando cambio a la segunda, se me monta arriba y al hacer click en ciertas zonas accedo a los editext y botones de la activity de abajo, hay manera de hacer que cuando llame un activity se cierre la anterior?

    Porque se me ocurrió inhabilitar todos los botones y editext de la activity anterior al abrir la nueva, pero resulta algo tedioso.

    Gracias y disculpen lo extenso.
     
  2. drgottjr

    drgottjr Active Member Licensed User

    la guia: https://www.b4x.com/android/forum/threads/b4x-documentation-booklets.88985/

    los botones y demas "views" estan ligados a una sola activity. no se comparten entre activities. los valores
    pueden compartirse, pero los views no. cuando dices que tienes 2 activities, no esta claro que hablas
    de 2 apps con una activity cada una, o de 1 app con multiples activities.

    con una app que consta de multiples activities, es mas facil comunicarse entre si. con 2 apps
    independientes, lo compartido es mas dificil. de todas formas, los views se inhabilitan y se
    inician cada vez que vuelves a una activity que habias dejado (sin embargo es posible mantener los
    valores que formaban parte de una activity y pasarlos a otra. ej., el texto de un view edittext en activity 2
    podria ser el texto de un view edittext en activity 1 cuando esta vuelve al primer plane.
    siempre que se trate de una app.)

    compartir valores entre apps independientes es mucho mas tedioso que duplicar algunos botones en
    una app con multiples activities.
     
  3. Zabatta

    Zabatta Member Licensed User

    Muchas gracias por tu respuesta, ciertamente no me explique muy bien, permiteme intentar hacerlo mejor. Tengo una App con 2 Activitys (una principal con una imagen y un botón, y otra secundaria que tiene un formulario con multiples botones y edittext) inicio la app con la activity principal colocando en el OnCreated la siguiente instrucción Activity.LoadLayaod("principal") luego tengo un sub botón_OnClick que tiene la instrucción Activity.LoadLayaod("formulario") en la activity formulario aparte de tener multiples edittext tengo un boto de volver que me vuelve a cargar la activity principal con Activity.LoadLayaod("principal")... Hasta ahí todo funciona correctamente, sin embargo al presionar el botón volver me carga la activity principal y la de formulario me queda abajo, al yo presionar en determinadas parte de la activity principal me habilita el teclado, lo cual no debería ocurrir porque en la principal no tengo edittext, cabe destacar que esto solo ocurre cuando cambio de formulario a principal... por eso digo que algo esta mal ahí y no se como se puede solucionar.

    espero haberme explicado un poco mejor.
     
  4. Jorge M A

    Jorge M A Active Member Licensed User

    José J. Aguilar and Zabatta like this.
  5. Zabatta

    Zabatta Member Licensed User

    Excelente muchas gracias, ya lo reviso.
     
  6. José J. Aguilar

    José J. Aguilar Well-Known Member Licensed User

    Zabatta and Jorge M A like this.
  7. drgottjr

    drgottjr Active Member Licensed User

    iba a recomendar lo mismo. lo que describes no debe de ocurrir. es mas; no puede ocurrir, si comprendo tu explicacion. un ejemplo de lo que has escrito seria util...
     
    Zabatta likes this.
  8. Zabatta

    Zabatta Member Licensed User

    Perfecto amigos, muchísimas gracias por todo lo que me recomendaron aun no he podido leer todos lo que me recomiendan pero lo haré lo mas pronto posible.

    Con lo poco que he leído creo ya tengo varias opciones para poner en practica y ver cual me funciona. La primera que haré sera colocar
    Activity.RemoveAllViews
    Esto no lo estaba colocando y posiblemente sea la solución, veo que lo utiliza klaus en el ejemplo que mas se parece a lo que estoy haciendo:

    - TwoActivityLayouts
    One Activity with 2 Layouts.
    All the code is in the Main module.
    Changing the Layout will not resume the activity.
    There are 2 layout files.

    Code:
    Sub Globals
      
    'These global variables will be redeclared each time the activity is created.
      'These variables can only be accessed from this module.
      Dim btnNext1, btnNext2 As Button
      
    Dim edtText1, edtText2 As EditText
      
    Dim rbtTest1, rbtTest2 As RadioButton
    End Sub

    Sub Activity_Create(FirstTime As Boolean)
      
    Activity.LoadLayout("TwoLayouts1")
    End Sub

    Sub Activity_Resume
    End Sub

    Sub Activity_Pause (UserClosed As Boolean)
    End Sub

    Sub btnNext1_Click
      
    Activity.RemoveAllViews
      
    Activity.LoadLayout("TwoLayouts2")
    End Sub

    Sub btnNext2_Click
      
    Activity.RemoveAllViews
      
    Activity.LoadLayout("TwoLayouts1")
    End Sub

    Como dije anteriormente seguiré leyendo todo lo que me recomendaron porque acabo de ver que tengo un mal concepto de Activity, modulo y Layouts. Ya que solo tengo 1 modulo y un activity, pero diversos Layouts, eso explica muchas cosas, disculpen mi ignorancia.

    Nuevamente muchas gracias a todos, me han ayudado muchísimo con toda esa información.
     
    Jorge M A and José J. Aguilar like this.
  9. José J. Aguilar

    José J. Aguilar Well-Known Member Licensed User

    Ojo, si no he entendido mal ten en cuenta que tienes 2 Activitys, pero estás cargando los dos Layouts en la misma, con lo cual la segunda Activity no te sirve de nada.
    Para que se inicie la otra Activity, tienes que llamarla con StartActivity, con con LoadLayout
    Code:
    Sub boton_Onclick
       
    StartActivity("NombreActivity")
    End Sub
    Si no me equivoco, si quieres cargar el layout formulario y que desaparezca el otro, tendrías que llamar Activity.RemoveAllViews
    Pero esta creo que no es la mejor forma.

    Cuando leas los tutoriales verás las diferencias, es verdad que al principio es un poco confuso.
    Si no tienes demasiado código para manejar los dos layouts, lo mejor es cargarlos en 2 panels, e ir mostrándolos u ocultándolos según te convenga.
     
    Zabatta likes this.
  10. drgottjr

    drgottjr Active Member Licensed User

    exacto. cuando acabas con activity 2, la principal vuelve automaticamente. no se inicia una activity come lo haces. simplemente estas cargando otro
    layout y borrando los views de una activity. no estas iniciando otra activity; la que funcionaba sigue funcionando. pero con la "cara" de otra
     
    Zabatta likes this.
  11. Zabatta

    Zabatta Member Licensed User

    umm ya veo :eek: creo que con algunas me conviene mas usar paneles, con otras layout y con otras usar módulos independientes.

    Muchas gracias
     
  12. Zabatta

    Zabatta Member Licensed User

    Muchas gracias caballeros, me fue de muchisima ayuda, gracias por toda la información suministrada, me ha ayudado a solucionar muchos problemas y a reconstruir la app para que sea mejor, correcta y más eficiente.

    Nuevamente muchas gracias
     
    Jorge M A likes this.
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice