¿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?

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 🙂

  • ¿Por qué onMeasure () llama dos veces en mi vista personalizada?
  • Crear un AlertDialog en Android con la vista xml personalizada
  • Cómo agregar el icono arrastrar con el cajón de navegación
  • FindViewById en una vista personalizada para encontrar la vista secundaria
  • Botón de forma personalizada de Android
  • Vincular una vista para arrastrar dentro de RelativeLayout
  • OnMeasure no se llama en mi grupo de vista personalizado android
  • RecyclerView y Data Binding no funcionan
  • Obtener contacto Foto basada en Teléfono de contacto Android - Ejemplo de trabajo
  • Simular la animación dentro de la vista personalizada en Android
  • Rendimiento: ViewGroup with Children VS. Vista personalizada
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.