Je travaille sur l'application Android et je dois définir des boutons personnalisés.
Initialement, je régle le bouton sur Invisible. P>
Je veux exécuter une méthode particulière et vérifier une valeur de chaîne. . S'il renvoie la valeur NULL, le bouton doit encore être invisible. S'il renvoie une valeur de chaîne, je souhaite appeler le bouton et effectuer une tâche puis. p>
C'est ce que j'ai essayé, mais échoué. p>
Mon application se bloque lorsque la valeur de code renvoie NULL, avec erreur: "Tentative d'invoquer la méthode virtuelle" P>
public String code = "";
Button startbtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_retrieve_visits);
startbtn = findViewById(R.id.videobutton);
startbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//code
}
});
//more code here
}
public void parseData(String response)
{
try {
JSONObject json = new JSONObject(response);
JSONArray data = json.getJSONArray("data");
for (int i = 0; i < data.length(); i++)
{
JSONObject child = data.getJSONObject(i);
code = child.getString("code");
}
if(data.length()==0) ////check for empty array
startbtn.setVisibility(View.INVISIBLE);
else
startbtn.setVisibility(View.VISIBLE);
}
catch (Exception e) {
e.printStackTrace();
}
}
3 Réponses :
Essayez le code ci-dessous
if (code != null && !code.equels("")
{
startbtn.setVisibility(View.VISIBLE);
}
else
{
startbtn.setVisibility(View.GONE);
}
startbtn.setOnClickListener(new View.OnClickListener() {
//Required action
}
Essayé ces. NullCompact: tentative d'invoquer la méthode virtuelle 'void.android.widget.button.setVisibilty (int)' sur une référence objet nulle
Avez-vous défini le bouton avec FOOTVIEWBYID Afficher votre code d'activité complet.
Voir mis à jour et assurez-vous que Videobutton est dans Activity_retrieve_visits.xml
Vous pouvez définir un bouton de trois manières à Android: 1. visible 2. Invisible 3. Allé p>
Utilisez bouton.invisible code> Pour masquer le bouton au lieu de bouton.gone code> Comme ce dernier enlève le bouton de la vue au lieu de cacher. C'est la raison pour laquelle vous obtenez une exception de pointeur NULL. P>
Vous pouvez essayer le code ci-dessous:
if (code == null || code.equals("")
{
startbtn.setVisibility(View.INVISIBLE);
}
else
{
startbtn.setVisibility(View.VISIBLE);
}
Pouvez-vous fournir un code complet?