2015-10-09 195 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;然后检查