頁:
[1]
android 宣告一個全域變數來記數 但是按下Button 不會+1
本帖最後由 ww22511 於 2018-10-14 02:24 PM 編輯我原本用全域變數是用來取 第一個頁面輸入的姓名
然後 我想到 用用看全域變數來記數(點擊按鈕 +=1)
但是我要用 按下按鈕 Textview 他卻沒辦法一直疊加 一直顯示1 而已
public class GlobalVariable extends Application {
private String Name;
public int a=0;
}/********以上是全域變數的JAVA檔案********/
/**下面這個是主要檔案 按鈕事件部分***/
Button btt =(Button)findViewById(R.id.button3);
btt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
GlobalVariable mon= new GlobalVariable();
TextView tv2 =(TextView)findViewById(R.id.textView4);
mon.a+=1;
tv2.setText(mon.a+"");
}
});
補充內容 (2018-10-14 04:52 PM):
感謝 kwj 大大的指點 改成 GlobalVariable mon=(GlobalVariable)getApplicationContext(); 已經可以成功累加了 謝謝!...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div> 本帖最後由 kwj 於 2018-10-14 03:00 PM 編輯
因為每次觸發 onClick() 時,你都 new 了一個新的 GlobalVariable,對於新 new 出來的 GlobalVariable,他的 a 的初始值都是 0,所以每次 +1 後都是 0+1=1。
問題不在於他沒有 +1,而是你的寫法根本不是全域變數。 可以先a++後在讓mon.a = a就可以了
主要是你要搞清楚你元件是怎麼觸發的,觸發後的事件又是如何產生的
你也可以用個log來觀察看看該數值是不是有做+1的動作,這樣你會比較清楚程式的規則
頁:
[1]