2011-08-05 4 views
0

Salut im nouveau à android et j'ai un programme qui a une variable globale définir et cela fonctionne, donc je peux le définir et l'obtenir dans chaque activité, mais il ne veut pas être modifié dans un clic sur auditeur. Je l'ai fait ainsi sur l'écran il y a un edittext et quand quelqu'un appuie sur un bouton je veux que le texte d'edittext soit mis dans la variable globale. voici mon code:éditer une variable globale

Button SiteButton = (Button) findViewById(R.id.SiteButton); 
    SiteButton.setOnClickListener(new View.OnClickListener() { 
     TextView textviewS = (TextView) findViewById(R.id.SiteIdT); 
     EditText edittextS = (EditText) findViewById(R.id.SiteIdE); 
     TextView textviewB = (TextView) findViewById(R.id.BusIdT); 
     EditText edittextB = (EditText) findViewById(R.id.BusIdE); 
     public void onClick(View v) { 
      textviewS.setText(edittextS.getText()); 
      ((Global) this.getApplication()).setgSiteId(textviewS.getText().toString()); 
      textviewB.setText(edittextB.getText()); 
      ((Global) this.getApplication()).setgVehicleId(textviewB.getText().toString()); 
     } 
    }); 

mais la partie getApplication() montre une erreur. quelqu'un peut-il aider?

Répondre

0

Vous devez vous référer à votre activité this, puisque View.OnClickListener ne dispose pas d'une telle méthode:

// Bad code! read below 
((Global) MyActivityClassName.this.getApplication()).setgSiteId(textviewS.getText().toString()); 
textviewB.setText(edittextB.getText()); 
((Global) MyActivityClassName.this.getApplication()).setgVehicleId(textviewB.getText().toString()); 

D'ailleurs, comment lancez le retour vous getApplication()-Global? Vous obtiendrez une exception de distribution de classe là-bas.