android d'activité - Android obtient l'activité d'hébergement à partir d'une vue




3 Answers

les méthodes suivantes peuvent vous aider

  1. Activity host = (Activity) view.getContext() ; et
  2. view.isFocused()
données passer

J'ai une Activity avec 3 EditText s et une vue personnalisée qui agit un clavier spécialisé pour ajouter des informations dans le EditText s.

Actuellement, je passe l' Activity dans la vue afin que je puisse obtenir le texte d'édition ciblé et mettre à jour le contenu du clavier personnalisé.

Existe-t-il un moyen de référencer l'activité parent et d'obtenir le EditText actuellement ciblé sans passer l'activité dans la vue?




J'ai pris la answer de Gomino et je l'ai modifiée pour qu'elle corresponde parfaitement à myUtils.java afin que je puisse l'utiliser où et quand j'en ai besoin. J'espère que quelqu'un le trouve utile :)

abstract class myUtils {
    public static Activity getActivity(View view) {
        Context context = view.getContext();
        while (context instanceof ContextWrapper) {
            if (context instanceof Activity) {
                return (Activity)context;
            }
            context = ((ContextWrapper)context).getBaseContext();
        }
        return null;
    }
}



Pour moi cela a fonctionné:

Context context = SdkUtils.getRootViewContext(getRootView());

puis de lancer comme ce (Activity) context




Related

android view android-activity android-edittext