2011-08-05 3 views
0

Привет, я новичок в android, и у меня есть программа, которая имеет глобальную переменную define и она работает, поэтому я могу установить ее и получить ее в каждом действии, НО ее dosnt нравится менять в щелчке слушатель. Я сделал так, чтобы на экране появился edittext, и когда кто-то нажимает кнопку, я хочу, чтобы текст edittext был помещен в глобальную переменную. Вот мой код:редактирование глобальной переменной

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()); 
     } 
    }); 

но getApplication() часть показывает ошибку. может ли кто-нибудь помочь?

ответ

0

Вы должны обратиться к вашей деятельности this, поскольку View.OnClickListener не имеет такой метод:

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

Кстати, как вы применяете отдачу от getApplication() к Global? Там вы получите исключение класса.

Смежные вопросы