Spanish Creación de objetos en tiempo de ejecución

felixjavierdiaz

Member
Licensed User
Longtime User
Hola a todos...

Alguien me puede orientar como puedo crear un aplicativo tipo encuestas en donde yo creo las preguntas en una base de datos con las posibles respuestas, y a partir de estas preguntas mostrarlas en un formulario o layout y de acuerdo a la respuesta se cree otro layout con las diferentes respuestas y asi sucesivamente hasta finalizar la ultima pregunta?

Gracias

Felix Diaz
Colombia
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola

Yo te aconsejo que hagas preguntas concretas a problemas concretos, si haces una pregunta muy global, llevará mucho tiempo contestarla y habrá menos gente en el foro para darte la solucion ya que la mayoria trabajamos, y nos resulta mas facil contestar a algo rapido que a algo que requiera mucho tiempo.

Lo que pides abria mil formas de hacerlo, y tambien dependiendo al tipo de encuesta y de como quieres que sea la mecánica, suponiendo que esa encuesta es tipo Test, que tiene varias opciones de respuesta tipo :

El caballo blanco de Santiago de que color era? :D
a) Blanco
b) Negro
c) Rojo

y el usuario tiene que marcar una.

Una opción es crear un ScrollView y en el panel cargar los label para las preguntas y los CheckBox para las respuestas.
Tambien puedes hacerlo todo con label y no emplear el CheckBox.

Tambien puedes emplear un ListView.

Como la pregunta es muy generica las respuestas tambien lo seran, empieza a ver que te va mejor y conforme te surjan dudas vas preguntando.

Saludos
 

josete

Member
Licensed User
Longtime User
A mi tambien me interesa este tema.¿es factible crear views en tiempo de ejecucion? por ejemplo una app con una lista de views (boton,slider,check button,etc) y que al elegir uno de la lista lo crease en un panel(por ejemplo)?¿se podria programar sus eventos click,change,etc?
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola Josete

Te pongo un pequeño ejemplo, el resto de controles es lo mismo

B4X:
Dim boton1 As Button
boton1.Initialize("Boton1")
boton1.Tag = 1 ' el texto que quieras
boton1.Text = "Texto del botón 1"
Activity.AddView(boton1,left,top,anchoboton,altoboton) ' lo incrustamos en el activity


Dim Tapa As Panel
Tapa.Initialize("") ' "" = no queremos evento
Tapa.Color = Colors.Black ' negro
Tapa.Visible = False ' por si quieres que no se vea hasta que tu lo hagas
Activity.AddView(Tapa,0,0,100%x,100%y)  ' lo incrustamos en el activity y lo hacemos igual de grande que el activity

' vamos a crear 5 botones dentro del panel
for n = 1 to 5
  Dim boton2 As Button
  boton2.Initialize("Boton2") ' Inicializamos con el nombre del evento Boton2
  boton2.Tag = n ' para saber el indice en el evento
  boton2.Text = "Texto del botón " & n 
  Tapa.AddView(boton2,left,top,anchoboton,altoboton) 'lo incrustamos en el panel llamado Tapa
next

' una etiqueta en la Tapa
dim Label1 as label
label1.Initialize("") ' "" = no queremos evento
label1.Text = "Texto del label"
label1.TextColor = Colors.White
label1.Color=Colors.Blue
label1.TextSize = 20
Tapa.AddView(label1,left,top,ancholabel,altolabel) 'lo incrustamos en el panel llamado Tapa

'.................  
'.................
'.................
'.................
 
     
 
Sub Boton1_Click

    Dim b As Button
    b = Sender

    log("Texto del boton 1" & b.Text)
 
end sub
 
 
Sub Boton2_Down
   dim indice as int

    Dim b As Button
    b = Sender
    indice=b.tag  ' En el tag pusimos el indice del boton

    log("Texto del boton 2 en el Down" & b.Text)
    log ("Tag del botón 2  en el Down" & b.Tag)
 
 
end sub


Saludos
 
Last edited:

josete

Member
Licensed User
Longtime User
Gracias de nuevo.Entiendo que los botones que se crean en el bucle tienen el mismo nombre pero se diferencian por el tag para saber cual
ha sido pulsado no?
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Si, es una forma facil de saber cual pulsaron, seria similar a VBasic a una matriz de objetos o controles que utilizas el indice para saber cual es.

Como ya antes te puse el ejemplo del boton 1, luego te hice el de varios botones con el mismo nombre por que a veces es interesante crear un grupo de objetos que se llamen igual, de esa forma tenias los dos ejemplos.

Saludos
 
Top