Dans une méthode showAlret(String message, Context ctx)
d'une classe d'alerte de dialogue, je suis en train de faire une référence à TextView dans le XML de mise en page de la boîte de dialogue:Quand est-ce que la conversion de contexte en activité est autorisée?
TextView tv = (TextView)((MyActivity)ctx).findViewById(R.id.tv_about);
pas avant d'appeler gonflez() bien sûr:
LayoutInflater li = LayoutInflater.from(ctx);
View view = li.inflate(R.layout.aboutdialog, null);
Le problème est que cet appel renvoie tv
comme null.
Étant donné que le code se compile sans aucun avertissement, je suppose que cela est dû à la conversion "illégale" de Context vers MyActivity.
J'ai rencontré un certain nombre de cas dans lesquels la conversion de contexte à activité est la seule chose qui fonctionne vraiment, alors pourquoi cela ne fonctionne-t-il pas dans ce cas?
Quand la conversion de contexte en activité est-elle logique? Quelles sont les "règles tacites" à cet égard?
Vous devrez utiliser la méthode tv = showAlret.findViewById() –
@Jaydeep Khamar Qu'entendez-vous par là? 'showAlret()' est le nom d'une méthode dans ma classe, pas un nom de classe. – ef2011
Oh !! Je pensais que c'était le nom de AlertDialog ... désolé pour malentendu. –