2010-11-06 36 views
3

我知道這聽起來很基本的內部計數器,但這裏是我的問題:如何增加一個onclick查看事件

我有一個是應該無限期地遞增計數器單擊時的onclickevent聽衆:

final int counter = 0; 
myimageView2.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
     counter ++; 
    } 
}); 

問題是,我似乎無法從onclick事件中調用計數器,除非它設置爲最終。然而,既然它是最終的,我不能再改變它的價值。

我試圖把onclick事件中的計數器,即:

myimageView2.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
     int counter = 0; 
     counter ++; 
    } 
}); 

但是,單擊它也將計數器復位回零。

我該如何解決這個問題?我想每次單擊它時連續遞增計數器,但我不能在onclick之外定義計數器,除非它是最終的,這意味着我不能再遞增計數器。而且我無法在onclick中定義計數器,因爲每次點擊它時它只會重置它的值。

+0

可能重複[內OnClickListener我無法訪問很多東西 - 如何處理(http://stackoverflow.com/questions/2076037/inside-onclicklistener-i-cannot-access-a- lotto-things-how-to-approach) – 2010-11-06 11:00:21

回答

12

解決:

myimageView2.setOnClickListener(new OnClickListener() { 
    int counter = 0; 
    public void onClick(View v) { 
     counter ++; 
    } 
}); 
+1

考慮通過點擊旁邊的「tick」或「check」圖標將此答案標記爲「接受」 – 2012-08-18 08:11:10

1

你可以宣佈 '反' 活動的onCreate方法之外。

0
t.setOnClickListener(new View.OnClickListener() { 
     int Counter = 0; 
     @Override 
     public void onClick(View v) { 
      Toast.makeText(getApplicationContext(), R.string.hey, Toast.LENGTH_SHORT).show(); 
      t.setBackgroundColor(getResources().getColor(R.color.colorPrimary)); 
      c.setBackgroundColor(getResources().getColor(R.color.colorAccent)); 
      p.setVisibility(View.VISIBLE); 
      if (Counter >= 0) { 
       Counter++; 
       e.setText("you clicked Click me "+Counter +"number of times"); 
       e.setTextSize(15); 
       e.setTextColor(getResources().getColor(R.color.colorPrimary)); 
       e.setSingleLine(); 
      }