Android 如何重新启动水平进度条
我有一个水平进度条,显示从0到100的进度。我想要的是在progressbar达到100时从0重新启动它。我将在一个片段对话框中显示这个。现在我正在活动本身中检查它。怎么做Android 如何重新启动水平进度条,android,android-progressbar,android-handler,Android,Android Progressbar,Android Handler,我有一个水平进度条,显示从0到100的进度。我想要的是在progressbar达到100时从0重新启动它。我将在一个片段对话框中显示这个。现在我正在活动本身中检查它。怎么做 public class MainActivity extends AppCompatActivity{ private Button startbtn, stopbtn; ProgressBar pb; private TextView progressTxt; int progr
public class MainActivity extends AppCompatActivity{
private Button startbtn, stopbtn;
ProgressBar pb;
private TextView progressTxt;
int progressBarValue = 0;
Handler handler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
show = new CShowProgress(MainActivity.this);
btn = (Button)findViewById(R.id.btn);
startbtn = (Button)findViewById(R.id.startbtn);
stopbtn = (Button)findViewById(R.id.stopbtn);
pb = (ProgressBar)findViewById(R.id.progressBar);
progressTxt = (TextView)findViewById(R.id.progressTxt);
startbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myprogress(true);
}
});
stopbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myprogress(false);
}
});
}
private void myprogress(final Boolean isStart){
handler = new Handler()
{
public void handleMessage(android.os.Message msg)
{
if(isStart && progressBarValue<100)
{
progressBarValue+=1;
pb.setProgress(progressBarValue);
progressTxt.setText(String.valueOf(progressBarValue));
handler.sendEmptyMessageDelayed(0, 100);
}
}
};
handler.sendEmptyMessage(0);
}
}
public类MainActivity扩展了AppCompatActivity{
专用按钮startbtn、stopbtn;
ProgressBar-pb;
私有文本视图progressTxt;
int-progressBarValue=0;
Handler=newhandler();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
show=新的CShowProgress(MainActivity.this);
btn=(按钮)findViewById(R.id.btn);
startbtn=(按钮)findViewById(R.id.startbtn);
stopbtn=(按钮)findviewbyd(R.id.stopbtn);
pb=(ProgressBar)findViewById(R.id.ProgressBar);
progressTxt=(TextView)findViewById(R.id.progressTxt);
startbtn.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
我的进步(真实);
}
});
stopbtn.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
我的进展(假);
}
});
}
私有void myprogress(最终布尔值isStart){
handler=newhandler()
{
public void handleMessage(android.os.Message msg)
{
如果(isStart&&progressBarValue首先,您应该使用计数器机制(运行延迟处理程序、计时器、线程或其他东西)定期检查当前进度
(progressTxt.getProgress == 100)
我会成功的
另一种方法是使用。我假设这段代码适用于您的用例:
private void myprogress(final Boolean isStart) {
handler = new Handler() {
public void handleMessage(Message msg) {
if (isStart && progressBarValue < 100) {
...
} else if (isStart) {
// progressBarValue is equal to 100
// make it zero and do the same thing again
progressBarValue = 0;
progressBarValue += 1;
pb.setProgress(progressBarValue);
progressTxt.setText(String.valueOf(progressBarValue));
handler.sendEmptyMessageDelayed(0, 100);
}
}
};
handler.sendEmptyMessage(0);
}
private void myprogress(最终布尔值isStart){
handler=newhandler(){
公共无效handleMessage(消息消息消息){
如果(isStart&&progressBarValue<100){
...
}否则如果(isStart){
//ProgressBar值等于100
//将其设为零,然后再次执行相同的操作
progressBarValue=0;
progressBarValue+=1;
pb.设置进度(进度值);
progressTxt.setText(String.valueOf(progressBarValue));
handler.sendEmptyMessageDelayed(01100);
}
}
};
handler.sendEmptyMessage(0);
}