2013-06-17 3 views
0

J'ai cherché l'Internet haut et bas pour la réponse à cette erreur:Android: méthode non statique ne peut pas être référencé à partir d'un contexte statique

méthode non statique « getStringExtra (java.lang.String) » ne peut pas être référencé à partir d'un contexte statique

Je n'ai rien trouvé alors je suis venu ici. Voici le code que j'utilise pour ajouter l'info comme figurants:

Intent OpenList = new Intent(this, ListRandom.class); 
OpenList.putExtra("ListItem1",List.get(1)); 
OpenList.putExtra("ListItem2", List.get(2)); 
OpenList.putExtra("ListItem3", List.get(3)); 
OpenList.putExtra("ListItem4",List.get(4)); 
OpenList.putExtra("ListItem5", List.get(5)); 

Et voici obtenir les Extras, où je reçois l'erreur:

Intent OpenList = getIntent(); 
    ListItem1 = Intent.getStringExtra("ListItem1"); 
    ListItem2 = Intent.getStringExtra("ListItem2"); 
    ListItem3 = Intent.getStringExtra("ListItem3"); 
    ListItem4 = Intent.getStringExtra("ListItem4"); 
    ListItem5 = Intent.getStringExtra("ListItem5"); 

Toute aide serait appréciée comme je suis de plus en un programmeur!

+4

double de [Quelle est la raison derrière « méthode non statique ne peut pas être référencé à partir d'un contexte statique »?] (Http://stackoverflow.com/questions/290884/what-is-the- reason-behind-non-static-method-ne peut pas-être-référencé-depuis-un-static) et http://stackoverflow.com/questions/4922145/non-static-method-cannot-be-referenced-from-a -static-context-error et http://stackoverflow.com/questions/2694566/non-static-method-cannot-be-referenced-from-a-static-context et http://stackoverflow.com/questions/5972764/non-static-method-ne peut pas-être-référencé-à partir d'un-static-context – CommonsWare

Répondre

5

changement

Intent OpenList = getIntent(); 
ListItem1 = Intent.getStringExtra("ListItem1"); 
ListItem2 = Intent.getStringExtra("ListItem2"); 
ListItem3 = Intent.getStringExtra("ListItem3"); 
ListItem4 = Intent.getStringExtra("ListItem4"); 
ListItem5 = Intent.getStringExtra("ListItem5"); 

à

Intent OpenList = getIntent(); 
ListItem1 = OpenList.getStringExtra("ListItem1"); 
ListItem2 = OpenList.getStringExtra("ListItem2"); 
ListItem3 = OpenList.getStringExtra("ListItem3"); 
ListItem4 = OpenList.getStringExtra("ListItem4"); 
ListItem5 = OpenList.getStringExtra("ListItem5"); 

Utilisez l'objet Intent que vous avez créé ici

Intent OpenList = getIntent(); 

Comme toute autre classe, en utilisant Intent.getStringExtra("words"); appelle d'une manière static et si vous regardez le Intent DocsgetStringExtra(String name) est pas une méthode static si vous créez une instance si Intent avec Intent OpenLIst = getIntent();

Aussi, pour coller aux normes de programmation Java, vous devez utiliser cas mixte pour vos noms de variables si OpenList serait openList et ListItem1 serait listItem1. Ce n'est pas nécessaire à l'établissement de toute évidence, mais une bonne idée d'essayer de coller aux normes

0

Lorsque vous écrivez:

ListItem1 = Intent.getStringExtra("ListItem1"); 

Vous utilisez une méthode (c.-à-getStringExtra(String name)) sur une classe (c.-à-Intent) , qui est une approche static. Au lieu de cela, vous devez utiliser une méthode sur un objet (c'est-à-dire OpenList) pour une approche non statique.

Ainsi, votre code devrait être remplacé:

ListItem1 = OpenList.getStringExtra("ListItem1"); 

et appliqué à ListItem2, ListItem3, et ainsi de suite.

OpenList

Questions connexes