2011-08-05 65 views
0

嗨im新的android和我有一個程序,有一個全局變量定義,它的工作原理,所以我可以設置它,並在每個活動得到它,但它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回報?你會在那裏得到一個類別強制例外。