【发布时间】:2019-09-10 15:38:33
【问题描述】:
我有两个文本视图和一个按钮。我想在重复单击或直到进度条完成时将计数添加到第一个文本视图,然后双击该值以将计数器添加到第二个文本视图。
我已经为第一部分编写了代码,但是当第二部分完成第一个文本视图的进度条时,我遇到了问题。对话框循环播放,无法正常工作。
请指导我应该做什么或告诉我您是否认识该文档。感恩的 或者当progress = 100时如何杀死线程或者如何停止处理程序?
//按钮代码:
TimerGameButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (progressStatus < 100){
soccerA();
}
if (progressStatus == 100){
soccerB();
}
}
});
//soccerA 方法:
public void soccerA() {
NameACounter++;
txtNameACounter.setText(Integer.toString(NameACounter));
progressStatus = 0;
new Thread(new Runnable() {
@Override
public void run() {
while (progressStatus < 100) {
progressStatus += 1;
try {
Thread.sleep(600);
} catch (InterruptedException e) {
e.printStackTrace();
}
handler.post(new Runnable() {
@Override
public void run() {
TimerGameButton.setProgress(progressStatus);
tv.setText("next");
// If task execution completed
if (progressStatus == 100) {
// Set a message of completion
tv.setText("time over!");
AlertDialog.Builder builder1 = new AlertDialog.Builder(StartLowGame.this);
builder1.setMessage("Write your message here.");
builder1.setCancelable(true);
builder1.setPositiveButton(
"Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
soccerB();
}
});
AlertDialog alert11 = builder1.create();
alert11.show();
}
}
});
}
}
}).start();
}
//soccerB 方法:
public void soccerB() {
NameBCounter++;
txtNameBCounter.setText(Integer.toString(NameBCounter));
progressStatus = 0;
new Thread(new Runnable() {
@Override
public void run() {
while (progressStatus < 100) {
progressStatus += 1;
try {
Thread.sleep(600);
} catch (InterruptedException e) {
e.printStackTrace();
}
handler.post(new Runnable() {
@Override
public void run() {
TimerGameButton.setProgress(progressStatus);
tv.setText("next");
// If task execution completed
if (progressStatus == 100) {
// Set a message of completion
tv.setText("time over!");
AlertDialog.Builder builder1 = new AlertDialog.Builder(StartLowGame.this);
builder1.setMessage("Write your message here.");
builder1.setCancelable(true);
builder1.setPositiveButton(
"Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert11 = builder1.create();
alert11.show();
}
}
});
}
}
}).start();
}
【问题讨论】:
-
为什么要在方法中创建线程?哪个文本视图是这个 tv.setText("next");
-
@Muazzamabbas 这只是一个要测试的名字
-
progress = 100 时如何杀死线程并从块中出来?
标签: android button textview progress-bar