如何通过在倒数计时器中按住按钮来添加值

Posted

技术标签:

【中文标题】如何通过在倒数计时器中按住按钮来添加值【英文标题】:How to add values by holding button in countdowntimer 【发布时间】:2021-05-01 03:29:16 【问题描述】:

我正在制作拳击倒数计时器并设置应该持续多长时间我使用两个按钮第一个“+”和第二个“-”我的时间每 5 秒添加一次,例如“5,10,15,20,25. ..”但我总是必须点击添加 5 秒。我想按住按钮,我的值会自动添加我该怎么办?

我希望我在我的问题中添加所有重要信息

我的按钮和显示代码

public void dodawanie1(View view) 
    iloscrund=iloscrund+1;
    display(iloscrund);

   public void odejmowanie1(View view) 
    if(iloscrund>1)
        iloscrund=iloscrund-1;
        display(iloscrund);
    



  private void display(int numer) 
    TextView displayInteger=(TextView) findViewById(R.id.textView16);
    displayInteger.setText("" + numer);


odejmowanie 表示减少值 dodawanie的意思是增加价值

【问题讨论】:

【参考方案1】:

如果您的意思是在单击和按住之间进行判断,请使用 onTouchListener 来确定按住按钮事件。

onTouchListener

【讨论】:

【参考方案2】:

我认为你应该使用 Runnable 和 Handler 类来做到这一点。 这个链接应该很有用。 android: Implement a 1 second interval timer before calling a function

activity_auto_inc.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_
android:layout_
tools:context=".AutoIncActivity">

<TextView
    android:id="@+id/num"
    android:layout_
    android:layout_
    android:layout_marginTop="24dp"
    android:gravity="center"
    android:text="1"
    android:textSize="26sp"
    android:textColor="@color/black"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<Button
    android:id="@+id/add"
    android:text="add"
    android:textColor="@color/white"
    android:layout_
    android:layout_
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.498"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/num" />
</androidx.constraintlayout.widget.ConstraintLayout>

AutoIncActivity.java

import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.os.Handler;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class AutoIncActivity extends AppCompatActivity implements 
View.OnLongClickListener, View.OnTouchListener 

Button add;
TextView txt;
boolean isAddPressed = false;
Handler handler;
final int TIME_INTERVAL = 100;
final int STEP = 1;

@SuppressLint("ClickableViewAccessibility")
@Override
protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_auto_inc);

    handler = new Handler();
    add = findViewById(R.id.add);
    txt = findViewById(R.id.num);

    add.setOnLongClickListener(this);
    add.setOnTouchListener(this);



@Override
public boolean onLongClick(View view) 
    if (view.getId() == R.id.add) 
        isAddPressed = true;
        handler.postDelayed(new AutoInc(), TIME_INTERVAL);
    
    return false;


@SuppressLint("ClickableViewAccessibility")
@Override
public boolean onTouch(View view, MotionEvent motionEvent) 
    if (motionEvent.getAction() == MotionEvent.ACTION_UP || 
       motionEvent.getAction() == MotionEvent.ACTION_CANCEL) 
        isAddPressed = false;
    
    return false;


private class AutoInc implements Runnable 
    @Override
    public void run() 
        if (isAddPressed) 
            
txt.setText(String.valueOf(Integer.parseInt(txt.getText().toString()) + 
STEP));
            handler.postDelayed(this, TIME_INTERVAL);
        
      
   

【讨论】:

你知道吗? 使用此链接faradars.org/courses/… 45 分钟后查看答案 我会为你努力的。

以上是关于如何通过在倒数计时器中按住按钮来添加值的主要内容,如果未能解决你的问题,请参考以下文章

在 XCODE 8 Swift 3 中为倒数计时器添加音调

按秒倒数计时器

如何在Android中制作倒数计时器?

使用 JavaScript 创建一个兔年春节倒数计时器

在按钮上显示倒数计时器

JavaFX,标签setText中的倒数计时器