查看完整版本: android 宣告一個全域變數來記數 但是按下Button 不會+1
頁: [1]

ww22511 發表於 2018-10-14 02:23 PM

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 02:59 PM

本帖最後由 kwj 於 2018-10-14 03:00 PM 編輯

因為每次觸發 onClick() 時,你都 new 了一個新的 GlobalVariable,對於新 new 出來的 GlobalVariable,他的 a 的初始值都是 0,所以每次 +1 後都是 0+1=1。

問題不在於他沒有 +1,而是你的寫法根本不是全域變數。

jackyo04 發表於 2018-10-15 09:33 AM

可以先a++後在讓mon.a = a就可以了
主要是你要搞清楚你元件是怎麼觸發的,觸發後的事件又是如何產生的
你也可以用個log來觀察看看該數值是不是有做+1的動作,這樣你會比較清楚程式的規則
頁: [1]