¿Cómo puede una vista personalizada tener acceso a su actividad?
Tengo una vista personalizada y me gustaría acceder a una cadena que está disponible en su actividad. He visto el código que utiliza getContext()
en la clase de vista, pero no hay ningún método para acceder a la cadena que se ha puesto a disposición de su actividad a través de una intención. Cómo hacer que una cadena de una actividad esté disponible para su vista personalizada?
- Cómo obtener atributos con el espacio de nombres "android" en TextView personalizado
- Estilo de la barra de desplazamiento de Spinner
- Vista personalizada no puede obtener el identificador de actividad de View.getContext
- Dibujar un diseño cuadrado dentro de un círculo
- Android - Cómo dibujar en vista
- ¿Cómo puedo obtener el tamaño del lienzo de una vista personalizada fuera del método onDraw?
- Children's views ondraw () no llamado después invalidate linearlayout container
- Cómo crear una barra de progreso personalizada en Android?
- Topmost View traga eventos táctiles porque la superposición
- Elevación del Lollipop en contorno cóncavo
- Obtener una clase vinculante desde vista
- Manejo de enfoque personalizado de ViewGroup
- Cómo agregar cuadros a la imagen?
El método getContext () en la clase View devuelve el contexto que se 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 noob a java y android, así que esto puede no funcionar, pero sólo estoy tratando de ayudar.
Debe ser capaz de pasar parámetros a intentos / actividades usando "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);
A continuación, en el método "onCreate" en su nueva vista, utilice lo 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 filas en una nueva actividad cuando un usuario hace clic en un botón.
Vea este enlace SO para más información sobre el uso de putextra y getextra: Enviar arrays con Intent.putExtra
Espero que esto ayude, es mi primera contribución a la comunidad 🙂
- ¿Cómo iniciar un nuevo Thread en un servicio?
- Diferencias de tamaño de archivo de aplicación en Android e iOS