J'ai une activité MyActivity qui s'étend de MapActivity. Dans le fichier .xml contenant la mise en page, je ne peux inclure que MapView
<com.google.Android.maps.MapView
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/trail_map_view"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:clickable="true"
Android:apiKey="key"
/>
Cependant, je dois trouver une autre vue située dans un autre fichier .xml . Malheureusement, findViewById renvoie null . Comment puis-je obtenir la vue que je cherche?
Merci beaucoup!
Merci de votre commentaire, je comprends ce que vous voulez dire mais je ne voulais pas vérifier les anciennes valeurs. Je voulais juste obtenir un pointeur sur cette vue.
En regardant le code de quelqu'un d'autre. Je viens de trouver une solution de contournement. Vous pouvez accéder à la racine d'une présentation à l'aide de LayoutInflater
.
Le code est le suivant, où this
est une activité:
final LayoutInflater factory = getLayoutInflater();
final View textEntryView = factory.inflate(R.layout.landmark_new_dialog, null);
landmarkEditNameView = (EditText) textEntryView.findViewById(R.id.landmark_name_dialog_edit);
Vous devez obtenir l'inflateur pour le contexte this
, accéder à la vue racine par la méthode inflate et enfin appeler findViewById
dans la vue racine de la présentation.
J'espère que c'est utile pour quelqu'un! Au revoir
J'ai changé d'activité mais j'ai effectué . Voici mon code:
View layout = getLayoutInflater().inflate(R.layout.list_group,null);
try {
LinearLayout linearLayout = (LinearLayout) layout.findViewById(R.id.ldrawernav);
linearLayout.setBackgroundColor(Color.parseColor("#ffffff"));
}
catch (Exception e) {
}
}
essayer:
Activity parentActivity = this.getParent();
if (parentActivity != null)
{
View landmarkEditNameView = (EditText) parentActivity.findViewById(R.id. landmark_name_dialog_edit);
}
C'est impossible. Vous pouvez uniquement rechercher et accéder aux vues en cours d'exécution. Si vous voulez vérifier la valeur de ex. TextView utilisé dans l'activité previus vous devez enregistrer la valeur SharedPreferences, database, file ou passer par Intent.
Une autre façon de faire est:
// inflate the layout
View myLayout = LayoutInflater.from(this).inflate(R.layout.MY_LAYOUT,null);
// load the text view
TextView myView = (TextView) myLayout.findViewById(R.id.MY_VIEW);