Tengo una vista personalizada y me gustaría acceder a una cadena que está disponible en su actividad. He visto código que usa getContext()
en la clase de vista, pero no hay ningún método para acceder al String que se ha puesto a disposición de su actividad mediante un intento. ¿Cómo hacer que una cadena en una actividad esté disponible para su vista personalizada?¿Cómo puede una vista personalizada tener acceso a su actividad?
Respuesta
El método getContext() en las declaraciones de vista de clase el contexto que pasó en su constructor. Por lo general, esa es la actividad que desea (la actividad amplía el contexto). Así que esto probablemente funcione para usted:
((Activity)getContext()).someMethod(...);
Soy un novato en Java y Android, así que puede que esto no funcione, pero solo estoy tratando de ayudar.
Usted debe ser capaz de pasar en los parámetros a Propósitos/actividades utilizando "putExtra" y "getExtra", por ejemplo:
en su actividad principal:
Intent EditDebtActivity = new Intent(getBaseContext(), EditDebt.class);
EditDebtActivity.putExtra(DbAdapter.KEY_ROWID,dRowID);
EditDebtActivity.putExtra(DbAdapter.KEY_DEBT, dName);
EditDebtActivity.putExtra(DbAdapter.KEY_STARTINGAMOUNT, dStartAmount);
EditDebtActivity.putExtra(DbAdapter.KEY_CURRENTAMOUNT, dCurrentAmount);
EditDebtActivity.putExtra(DbAdapter.KEY_DUEDATE, dDueDate);
EditDebtActivity.putExtra(DbAdapter.KEY_INTERESTRATE, dInterestRate);
EditDebtActivity.putExtra(DbAdapter.KEY_MINPAYMENT, dMinPayment);
startActivity(EditDebtActivity);
Luego, en el "onCreate" método en su nuevo punto de vista, utilice la siguiente:
Bundle extras = getIntent().getExtras();
dRowID = extras.getLong(DbAdapter.KEY_ROWID);
String rowidname = extras.getString(DbAdapter.KEY_DEBT);
currentamount = extras.getDouble(DbAdapter.KEY_CURRENTAMOUNT);
startingamount = extras.getDouble(DbAdapter.KEY_STARTINGAMOUNT);
duedate = extras.getInt(DbAdapter.KEY_DUEDATE);
, obviamente, he usado mi propio código aquí, pero estoy pasando información de la fila en una nueva actividad cuando un usuario hace clic en un botón.
ver este enlace SO para obtener más información sobre el uso de putextra y getextra: Sending arrays with Intent.putExtra
Espero que esto ayude, es mi primera contribución a la comunidad :)
R Hi tahnks para su primera contribución :) tengo una vista de lista que enumera los nombres de los archivos JPEG en la raíz. cuando el usuario selecciona, dispara un intento con un nombre de archivo. la actividad de recepción puede obtener el nombre del archivo, pero su vista, que es una vista personalizada, no puede acceder al nombre del archivo. Gracias. – turtleboy
- 1. Cómo iniciar una actividad de vista personalizada
- 2. ¿Puede una vista tener dos modelos de vista como su contexto de datos?
- 3. acceso Fragmento Vista desde onCreate de Actividad
- 4. Vista personalizada de Android a comunicación de actividad
- 5. Acceso a UITextField en una UITableViewCell personalizada
- 6. Lanzar una excepción personalizada de un servicio a una actividad
- 7. Cómo pasar AttributeSet a la vista personalizada
- 8. Android: ¿Cómo probar una vista personalizada?
- 9. WF4: Actividad personalizada con actividad infantil
- 10. ¿Puede una vista principal tener más de una colección?
- 11. ¿Se puede deshabilitar ScrollWheel en una vista de calle personalizada?
- 12. ¿Puede jboss-web.xml tener acceso a las propiedades?
- 13. ¿Puede una API web ActionFilterAttribute tener acceso al modelo?
- 14. Android obtener alojamiento Actividad desde una vista
- 15. de acceso directo para iniciar una actividad
- 16. ¿Cómo accedo a layout_height desde mi vista personalizada?
- 17. llamada personalizada Actividad como startActivityForResult
- 18. Cómo finalizar una actividad de otra actividad
- 19. ASP.NET MVC: ¿Puede una vista parcial tener un controlador?
- 20. vista personalizada
- 21. Problemas al agregar actividad personalizada a UIActivityController
- 22. ¿Cómo centrar una vista personalizada en Android?
- 23. ¿Cómo inflico una vista personalizada en XML?
- 24. ¿Cómo crear una vista personalizada simple?
- 25. Vista de notificación personalizada
- 26. ¿Cómo agregar una vista personalizada al diseño?
- 27. ¿Cómo ubicar el contexto dentro de una vista personalizada?
- 28. Cómo sobrescribir una vista personalizada (vista de superficie)
- 29. Eliminar una vista de una actividad
- 30. Mostrar actividad con animación personalizada
simao perfecto, muchas gracias. – turtleboy
Es una buena solución para los casos en que la Vista es creada directamente por la Actividad. Este no es siempre el caso. Si la vista es una vista de un cuadro de diálogo o una ventana emergente, fundir el contexto como una actividad dará como resultado un error – EyalBellisha
Como señala @EyalBellisha, esto podría no funcionar siempre. En el caso de los widgets de compatibilidad envueltos en contexto, como es el caso cuando se extiende desde 'android.support.v *', 'getContext()' no será del tipo Activity. Para AppCompatButton, por ejemplo, es del tipo TintContextWrapper y no se puede convertir a Activity. –