gpt4 book ai didi

java - Android:CountDownTimer 使用 EditText 值中的按钮设置起始值

转载 作者:行者123 更新时间:2023-12-02 04:17:48 25 4
gpt4 key购买 nike

我刚刚开始使用 Android Studios,并希望通过按钮 Clickevent 创建一个具有可设置开始值的 CountDownTimer。到目前为止我的代码:`

private static final String TAG = "MSchlanstedt";
private int number;
boolean status = true;
private CountDownTimer myTimer;

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

final ProgressBar bar = (ProgressBar)findViewById(R.id.progressBar);
final EditText Time = (EditText)findViewById(R.id.text);
final Button Button = (Button)findViewById(R.id.start);
final TextView textView = (TextView)findViewById(R.id.textView);

Button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (status == true)
{
Button.setText("Stop");
number = Integer.valueOf(Time.getText().toString())*1000;
myTimer.start();
status = false;
Log.d(TAG, "Button.onClick():Start " + number);
}else
{
myTimer.cancel();
Button.setText("Start");
Log.d(TAG, "Button.onClick():Stop " + number);
status = true;
}

}
});

myTimer = new CountDownTimer(number,1000) {
public void onTick(long millisUntilFinished)
{
Log.v(TAG,"CountDownTimer.onTick(): sUntilFinished: "+number+"/"+ millisUntilFinished /1000);
textView.setText(String.valueOf(millisUntilFinished/1000));
}
public void onFinish()
{
Log.v(TAG,"CountDownTimer.onFinish()");
}
}.start();
}

...`

我的问题是按钮在文本开始和停止之间切换,但倒计时不会以我的 int 数字开始。如果我将起始值设置为 3000,它就会完美启动。

我的问题是如何获取 EditText 的值作为 CounterDown 的起始值。

这是我在 stackoverflow 上的第一个问题,所以请耐心等待我和我糟糕的英语。

最佳答案

创建一个方法

private void showCountDownTimer(int number) {
myTimer = new CountDownTimer(number, 1000) {
public void onTick(long millisUntilFinished)
{
Log.v(TAG,"CountDownTimer.onTick(): sUntilFinished: "+number+"/"+ millisUntilFinished /1000);
textView.setText(String.valueOf(millisUntilFinished/1000));
}
public void onFinish()
{
Log.v(TAG,"CountDownTimer.onFinish()");
}
}.start();
}

并在onClick中调用它

Button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (status == true)
{
Button.setText("Stop");
number = Integer.valueOf(Time.getText().toString())*1000;
showCountDownTimer(number);
status = false;
Log.d(TAG, "Button.onClick():Start " + number);
}else
{
myTimer.cancel();
Button.setText("Start");
Log.d(TAG, "Button.onClick():Stop " + number);
status = true;
}

}
});

说明:

因为您在 onCreate 中初始化了 myTimer (CountDownTimer),所以 number 的默认值为 0。您应该即时初始化它(当您获取该值时) .

关于java - Android:CountDownTimer 使用 EditText 值中的按钮设置起始值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33123679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com