Home Menu

Menu



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 31/05/16, 12:17:26
Avatar de gonza28
gonza28 gonza28 no está en línea
Desarrollador
Mensajes: 4,191
 
Fecha de registro: feb 2012
Localización: INTERESA?
Mensajes: 4,191
Modelo de smartphone: Samsung Galaxy Note 4
Versión de ROM: Android Lollipop 5.1.1
Tu operador: Personal
Mencionado: 6 comentarios
Tagged: 0 hilos
Necesito pasar los views del adapter a una actividad detalle.

Hola.
Bueno, les comento mi problema.
Hasta ahora venia utilizando ListView. y en el casi de necesitar base de datos, cosa que poco hice sobre eso a tal punto que aún estoy verde, pero en ese caso, lo hice con CursorAdapter.

Resulta que algunas animaciones muy lindas, no las puedo hacer con el ListView y eso me lleva a empezar de nuevo con el RecyclerView.

Mi problema despues de haber luchado y resuelto algunos problemas grandes con el Provider, ahora estoy en un serio problema que me tiene 2 dias en la lucha.

Alguien sería amable de darme una mano por favor? quier pasar los views del adapter a una actividad detalle y no puedo hasta ahora. Serian capas de mostrarme los metodos o incluso voy a dejar en un editor online mi adapter y actividad para que se vea aún mejor y completo.
Si alguien me da una mano, le estaré muy agradecido. Saludos y muchas gracias.

Este es mi adapter:
https://codeshare.io/IROdt

Actividad:
https://codeshare.io/AXALi

Actividad Detalles

https://codeshare.io/BNFlj

Última edición por gonza28 Día 02/06/16 a las 01:07:05
Responder Con Cita


  #2  
Viejo 31/05/16, 15:29:19
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
No sé a qué te refieres con pasar los views del adapter a otra actividad. Las views pertenecen a la actividad donde estén, no se "pasan" entre actividades. Y el adapter sólo tiene sentido para poblar la lista o el recyclerview, fuera de ahí no lo usas porque no hay nada que adaptar.

Lo que tienes que hacer es pasar mediante un Intent los datos que le hagan falta a la nueva actividad para mostrarlos (o algún identificador para que obtenga los datos del modelo). Pero las vistas son las que cree esa actividad en su layout.
Responder Con Cita
Gracias de parte de:
  #3  
Viejo 31/05/16, 15:41:58
Avatar de gonza28
gonza28 gonza28 no está en línea
Desarrollador
Mensajes: 4,191
 
Fecha de registro: feb 2012
Localización: INTERESA?
Mensajes: 4,191
Modelo de smartphone: Samsung Galaxy Note 4
Versión de ROM: Android Lollipop 5.1.1
Tu operador: Personal
Mencionado: 6 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por mocelet Ver Mensaje
No sé a qué te refieres con pasar los views del adapter a otra actividad. Las views pertenecen a la actividad donde estén, no se "pasan" entre actividades. Y el adapter sólo tiene sentido para poblar la lista o el recyclerview, fuera de ahí no lo usas porque no hay nada que adaptar.

Lo que tienes que hacer es pasar mediante un Intent los datos que le hagan falta a la nueva actividad para mostrarlos (o algún identificador para que obtenga los datos del modelo). Pero las vistas son las que cree esa actividad en su layout.
Tan solo quiero pasar los ítemes del adaptador. O sea un tipo OnItemClickListener. Solo que no me familiarizo con el recycler.

Claro, en la la lista hacer clic en un ítem y pasar todo contenido a otra actividad. Yo siempre lo hago desde un modelo, como veras, los datos los saco desde una base de datos y no es lo mismo al margen qué con un CursorAdapter es mucho más fácil. Pero el CursorAdapter es para un ListView. El recycler es más complicado según mi humilde criterio.

Lo que pretendo, no se si soy jodido de explicarme o que pasa. Pero pretendo hacer clic en un ítem y poder mostrar esos views (texto etc.) en una actividad preparada para los detalles. Nada más. Pero no me sale.

Enviado desde mi SM-N910U mediante Tapatalk
Responder Con Cita
  #4  
Viejo 31/05/16, 16:01:12
Avatar de Dexafree
Dexafree Dexafree no está en línea
Mr. FAQMan
Mensajes: 8,021
Compra y venta: (1)
 
Fecha de registro: dic 2008
Mensajes: 8,021
Modelo de smartphone: Samsung Galaxy S i9000 + Galaxy Tab 10.1 WiFi
Versión de ROM: Android 4.1.1 Jelly Bean
Versión de Radio: KF1
Tu operador: Movistar
Mencionado: 65 comentarios
Tagged: 2 hilos
No termino de entender si el problema es que en el RecyclerView no tienes el "onItemClickListener" como tal, si quieres pasar el contenido del item pulsado a la otra activity, o el CursorAdapter.

Creo que te lo comente en otro hilo, en caso de tener un Cursor puedes convertirlo a lista de items con un while, y de esa forma podrás trabajar con un Adapter normal, el cuál es más facilmente adaptable a un RecyclerView.
Si estas empezando con él, esta lib te puede resultar útil, implementa bastantes cosas de serie:
https://github.com/mikepenz/FastAdapter

Y para pasar el item a la otra Activity, como bien te ha dicho Mocelet solo tendrías que pasar como extra en el Intent una de estas dos cosas:
- El objeto del modelo (que implemente Parcelable)
- El id del objeto (si lo tienes en base de datos), y en la activity destino irlo a buscar al modelo de nuevo
Responder Con Cita
Gracias de parte de:
  #5  
Viejo 02/06/16, 00:54:01
Avatar de gonza28
gonza28 gonza28 no está en línea
Desarrollador
Mensajes: 4,191
 
Fecha de registro: feb 2012
Localización: INTERESA?
Mensajes: 4,191
Modelo de smartphone: Samsung Galaxy Note 4
Versión de ROM: Android Lollipop 5.1.1
Tu operador: Personal
Mencionado: 6 comentarios
Tagged: 0 hilos
Compañeros. Resuelto!

Esta es la manera. quizás haya otras maneras seguramente las hay. Pero la mia fue así y ojalá sirva a alguien más. Y si alguien necesita mas detalles de como pasar los datos provenientes de una base de datos pregunta y le paso el codigo.

con esto enviamos los datos a la actividad detalles

https://codeshare.io/8td9v

Así recibimos los datos
https://codeshare.io/AXALi

Por las dudas dejo los fragmentos tambien.

[PHP] @override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_lista, parent, false);
final ViewHolder vh = new ViewHolder(v);

v.setOnClickListener(new View.OnClickListener() {
@override
public void onClick(View v) {
final int posicion = vh.getAdapterPosition();
if (posicion != RecyclerView.NO_POSITION) {
Log.d(TAG, "onClick() position with: " + posicion);
Log.d(TAG,"ID de la posicion actual:" + items.moveToPosition(posicion));
items.moveToPosition(posicion);

String id = items.getString((Consulta.ID));
String nombre = items.getString((Consulta.NOMBRE));

Intent e = new Intent(contexto, ActividadDetalle.class);
e.putExtra("id", id);
e.putExtra("nombre", nombre);

contexto.startActivity(e);

}
}

});
return vh;
}[/PHP]

[PHP]public class ActividadDetalle extends AppCompatActivity {

private static final String TAG = ActividadDetalle.class.getSimpleName();
private TextView hora, txFecha;

@override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail);

nombre = (TextView) findViewById(R.id.textNombre);
txId = (TextView) findViewById(R.id.textId);
// Dehabilitar titulo de la actividad
if(getSupportActionBar()!=null)
getSupportActionBar().setDisplayShowTitleEnabled(f alse);



String nombre = getIntent().getStringExtra("nombre");
String id = getIntent().getStringExtra("id");


nombre.setText(nombre);
txId.setText(id);




}

}[/PHP]

Muchas gracias por la mano.
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:27:15 (GMT +2)

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