2015-10-09 149 views
-2

因此,一切工作在代碼中,但我無法弄清楚如何通過按鈕點擊一次增加進度條1單位。按鈕點擊進度條

import android.app.Activity; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 
import android.widget.Chronometer; 
import android.view.View.OnClickListener; 
import android.os.SystemClock; 
import android.widget.ProgressBar; 

public class MainActivity extends Activity{ 

     TextView txtCount; 
     Button btnCount; 
     int count=0; 
     Chronometer chrono; 
     boolean mIsStarted = false; 
     ProgressBar probar; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 

      chrono=(Chronometer) findViewById(R.id.chronometer); 
      txtCount=(TextView) findViewById(R.id.textView); 
      btnCount=(Button)findViewById(R.id.button); 
      probar=(ProgressBar) findViewById(R.id.progressBar); 

      btnCount.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        count++; 
        txtCount.setText(String.valueOf(count)); 
        btnCount.setEnabled(true); 
        if (!mIsStarted) { 
         chrono.setBase(SystemClock.elapsedRealtime()); 
         chrono.start(); 
         mIsStarted = true; 

         probar.setProgress(count++); 
         probar.setMax(5); 


        } 
       } 
     }); 
    }} 

我一直在嘗試一個愚蠢的數小時的事情,無法讓它工作。它會統計第一次點擊,然後停止計算以下點擊次數。我認爲它會像textview方法一樣工作,但仍然無法解決它!感謝您的答案!

+0

嘗試學習如何調試它會幫助你很多 –

回答

1

它將計算第一次點擊,但隨後停止下列 點擊

計數由於如果塊:

if (!mIsStarted) { 
    ... 
    mIsStarted = true; 
    ... 
} 

因爲mIsStartedfalse僅第一時間和休息值mIsStartedtrue

所以要麼刪除條件或移動ProgressBar相關的代碼如果阻止讓它工作按鈕點擊。

+0

沒有像處於新的東西讓你覺得自己很蠢!哈哈TY爲您的解決方案...忘了檢查我的括號! TY! –

1

這是因爲這種情況在onClick()方法

mIsStarted = true; 

看到首先,你必須初始化mIsStartedfalse因此它可以在第一次點擊,但一旦它在這裏這種情況下

if (!mIsStarted) { 
        chrono.setBase(SystemClock.elapsedRealtime()); 
        chrono.start(); 
        mIsStarted = true; // here it is initialized to true 

        probar.setProgress(count++); 
        probar.setMax(5); 


       } 

所以現在mIsStartedtrue所以它不會進入上述if,因此不會在progress bar

所以,你可以發表評論這種說法mIsStarted = true;然後檢查