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 12/10/14, 17:53:54
Avatar de Solrac__7
Solrac__7 Solrac__7 no está en línea
Miembro del foro
Mensajes: 317
 
Fecha de registro: nov 2012
Localización: Badajoz
Mensajes: 317
Modelo de smartphone: Galaxy S7 Edge y Gear S3
Tu operador: -
Mencionado: 0 comentarios
Tagged: 0 hilos
Crear layout y botones desde java

Hola a todos, estoy haciendo una aplicación en la que necesito crear varios linearlayout desde java y a esos layout añadirle botones.
Los linearlayout tendrán dentro dos botones y estarán dentro de un scrollwiew.
¿Es posible hacer esto? ¿o hay algún otro método para hacerlo que no sea desde el xml?
Responder Con Cita


  #2  
Viejo 13/10/14, 10:43:56
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
Prácticamente todo lo que puede hacerse en XML se puede hacer con objetos Java (tienes las clases LinearLayout, Button y todas las que te hagan falta).

Si te construyes el layout entero en código, entonces al setContentView le pasas el View que hayas creado en vez de la referencia al XML.

Si lo que quieres es meter cosas nuevas en algún sitio del layout, puedes dejar un linearlayout vacío en algún sitio de tu XML y con código obtener la referencia con el findViewById de siempre. Teniendo la referencia al objeto ya puedes añadirle la jerarquía de Views que quieras por código.
Responder Con Cita
  #3  
Viejo 18/10/14, 17:10:49
Avatar de Solrac__7
Solrac__7 Solrac__7 no está en línea
Miembro del foro
Mensajes: 317
 
Fecha de registro: nov 2012
Localización: Badajoz
Mensajes: 317
Modelo de smartphone: Galaxy S7 Edge y Gear S3
Tu operador: -
Mencionado: 0 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por mocelet Ver Mensaje
Prácticamente todo lo que puede hacerse en XML se puede hacer con objetos Java (tienes las clases LinearLayout, Button y todas las que te hagan falta).

Si te construyes el layout entero en código, entonces al setContentView le pasas el View que hayas creado en vez de la referencia al XML.

Si lo que quieres es meter cosas nuevas en algún sitio del layout, puedes dejar un linearlayout vacío en algún sitio de tu XML y con código obtener la referencia con el findViewById de siempre. Teniendo la referencia al objeto ya puedes añadirle la jerarquía de Views que quieras por código.
Muchas gracias, ya he conseguido hacerlo , pero ahora me ha surgido otra pregunta, como puedo hacer para que un botón haga una cosa al pulsarlo normal (onclick) y otra con una pulsación prolongada?
Responder Con Cita
  #4  
Viejo 18/10/14, 17:35:17
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
Cita:
Originalmente Escrito por Solrac__7 Ver Mensaje
Muchas gracias, ya he conseguido hacerlo , pero ahora me ha surgido otra pregunta, como puedo hacer para que un botón haga una cosa al pulsarlo normal (onclick) y otra con una pulsación prolongada?
onClickListener y onLongClickListener
Responder Con Cita
  #5  
Viejo 18/10/14, 17:56:05
Avatar de Solrac__7
Solrac__7 Solrac__7 no está en línea
Miembro del foro
Mensajes: 317
 
Fecha de registro: nov 2012
Localización: Badajoz
Mensajes: 317
Modelo de smartphone: Galaxy S7 Edge y Gear S3
Tu operador: -
Mencionado: 0 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por kriogeN Ver Mensaje
onClickListener y onLongClickListener
Si, pero de que manera puedo poner los dos métodos en el mismo botón, ya que aunque le ponga el onlongclick en cuanto pulso el botón entra el el método onClick
Responder Con Cita
  #6  
Viejo 18/10/14, 18:29:07
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
Cita:
Originalmente Escrito por Solrac__7 Ver Mensaje
Si, pero de que manera puedo poner los dos métodos en el mismo botón, ya que aunque le ponga el onlongclick en cuanto pulso el botón entra el el método onClick
El OnClick sólo se ejecuta si pulsas y levantas, si se ejecuta sólo pulsando es OnTouch, si nada más tocar el botón se ejecuta el evento algo debes estar haciendo mal.
Responder Con Cita
  #7  
Viejo 18/10/14, 18:48:38
Avatar de Solrac__7
Solrac__7 Solrac__7 no está en línea
Miembro del foro
Mensajes: 317
 
Fecha de registro: nov 2012
Localización: Badajoz
Mensajes: 317
Modelo de smartphone: Galaxy S7 Edge y Gear S3
Tu operador: -
Mencionado: 0 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por kriogeN Ver Mensaje
El OnClick sólo se ejecuta si pulsas y levantas, si se ejecuta sólo pulsando es OnTouch, si nada más tocar el botón se ejecuta el evento algo debes estar haciendo mal.
Se ejecuta el onclick al soltar el botón pero aunque lo deje pulsado mucho tiempo nunca entra en el onlongclick.
Te explico un poco como lo tengo hecho: tengo muchos botones creados desde java.
Al pulsar el botón normalmente(pulsación corta) entra en el onclick, dentro de este tengo un switch con todos los case de los botones, al pulsar un botón obtengo la id del botón y entra en su case reproduciendo un sonido.
En la clase tengo implementado el OnClickListener y el OnLongClickListener y tengo también los métodos onclick y onlongclick, y todo funciona bien excepto cuando dejo pulsado un botón, que no hace nada hasta que lo suelto y se activa el onclick normal.
Espero que me hayas entendido
Responder Con Cita
  #8  
Viejo 18/10/14, 19:43:54
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
Pues no se, debería funcionar. Lo único que se me ocurre es que estés devolviendo false en lugar de true en el "onlongclick", aún así el código presente en el "onlongclick" debería ejecutarse.
Responder Con Cita
Gracias de parte de:
  #9  
Viejo 18/10/14, 19:59:18
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
Asegúrate de llamar al método setLongClickable(true) de cada botón, si no Android no se molesta en comprobar si es larga o corta y te lanza siempre el onClick.

EDIT: Y si los defines en XML, el atributo es android:longClickable
Responder Con Cita
Gracias de parte de:
  #10  
Viejo 20/10/14, 00:44:16
Avatar de Solrac__7
Solrac__7 Solrac__7 no está en línea
Miembro del foro
Mensajes: 317
 
Fecha de registro: nov 2012
Localización: Badajoz
Mensajes: 317
Modelo de smartphone: Galaxy S7 Edge y Gear S3
Tu operador: -
Mencionado: 0 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por mocelet Ver Mensaje
Asegúrate de llamar al método setLongClickable(true) de cada botón, si no Android no se molesta en comprobar si es larga o corta y te lanza siempre el onClick.

EDIT: Y si los defines en XML, el atributo es android:longClickable
Bueno pues ya lo he conseguido , el método al que tenia que llamar desde cada botón era setOnLongClickListener() así que ya está todo resuelto hasta nuevo aviso.
Muchísimas gracias a los dos por las ayudas, así da gusto programar
Responder Con Cita
Respuesta

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


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: 22:14:28 (GMT +2)

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