如何通过在倒数计时器中按住按钮来添加值
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 分钟后查看答案 我会为你努力的。以上是关于如何通过在倒数计时器中按住按钮来添加值的主要内容,如果未能解决你的问题,请参考以下文章