web-dev-qa-db-fra.com

android - Comment obtenir une vue du contexte?

Je veux obtenir la vue ou findViewById () à partir du contexte? Ou d'intention?

J'essaie d'atteindre une vue spécifique dans mon récepteur de diffusion et le paramètre de onReceive est contextuel et intentionnel.

Eh bien, j'ai un cours dans lequel se trouve mon récepteur de diffusion. Maintenant, j'essaie de séparer le récepteur de radiodiffusion de celui-ci, mais il me faut un moyen de communiquer avec les vues de ma classe à partir de ma classe de récepteur de radiodiffusion séparée.

Merci.

50
reika

Par exemple, vous pouvez trouver n’importe quel textView:

TextView textView = (TextView) ((Activity) context).findViewById(R.id.textView1);
60
KuzyaTheBrownie

À partir d’un contexte, la vue racine de l’activité associée peut être obtenue en

View rootView = ((Activity)_context).Window.DecorView.FindViewById(Android.Resource.Id.Content);

Dans Raw Android, cela ressemblerait à quelque chose comme:

View rootView = ((Activity)mContext).getWindow().getDecorView().findViewById(Android.R.id.content)

Ensuite, appelez simplement findViewById sur cette

View v = rootView.findViewById(R.id.your_view_id);
55
samis

Dans votre récepteur de diffusion, vous pouvez accéder à une vue via une structure racine à partir d’une ressource XML, puis retrouver toutes vos vues à partir de cette structure racine avec findViewByid ():

View view = View.inflate(context, R.layout.ROOT_LAYOUT, null);

Vous pouvez maintenant accéder à vos vues via "view" et les convertir en votre type de vue:

myImage = (ImageView) view.findViewById(R.id.my_image);
7
Marcin S.

utilisez d'abord ceci:

LayoutInflater inflater = (LayoutInflater) Read_file.this
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

Read file is current activity in which you want your context.

View layout = inflater.inflate(R.layout.your_layout_name,(ViewGroup)findViewById(R.id.layout_name_id));

alors vous pouvez utiliser ceci pour trouver n'importe quel élément dans la mise en page.

ImageView myImage = (ImageView) layout.findViewById(R.id.my_image);
1
Fahad Anjum