如何使用处理程序增加 textview 的值? (或其他解决方案)

How do i increase the value of a textview with a handler? (or other solution)

首先,我已经试过了:Continuously increase integer value as the button is pressed

但我有 59 个错误,是的,59 个,因为我曾经使用 Eclipse,它清楚地告诉你你有什么样的错误,如何修复它,Android Studio 看起来是为有经验的人...我什至不明白到底该怎么做才能修复所有错误(顺便说一句,当我尝试修复某些东西时,我又以某种方式破坏了 10 个)。

那么...给定一个 Button 和一个 TextView,我该如何增加 textview(例如 Clicker 游戏)并使其停止再次按下同一个按钮: 我如何在每个 "click"

之间设置间隔
TextView score = (TextView) findViewById(R.id.textView);
score.setText(Integer.toString(i));

    Button click =   (Button) findViewById(R.id.button2);
    click.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View view) {
            i++;
            score.setText(Integer.toString(i));

        }
    });

顺便说一下...我不需要解决方案,我需要了解 Thread 或 Handlers 的工作原理,是的,每个人都会向我推荐文档,但我需要看一个简单的示例,逐部分解释通过阅读文档,我会比我已经了解的更多。

Given a Button and a TextView how do i do to increase the textview (like a Clicker game for example) and make it stop pressing the same button again: And how do i put the intervals between each "click"

鉴于您的 scoreclick 小部件来自您的问题:

第 1 步:将 Runnable 字段添加到您的 activity 或片段。在这里,我称之为 incrementer.

第 2 步:在您的 activity 或片段中定义一个 static final int DELAY 字段,其中包含您想要的延迟时间(“间隔”)(以毫秒为单位)。

第 3 步:根据 incrementer 的状态,让您的 Button 使用 postDelayed()removeCallbacks()

click.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(final View v) {
    if (incrementer==null) {
      incrementer=new Runnable() {
        @Override
        public void run() {
          i++;
          score.setText(Integer.toString(i));
          v.postDelayed(incrementer, DELAY);
        }
      };
      incrementer.run();
    }
    else {
      v.removeCallbacks(incrementer);
      incrementer=null;
    }
  }
}

incrementer 字段有两个作用。它跟踪我们是否正在递增 TextView 内容,并且是执行递增的实际代码。

如果 incrementernull,我们目前不会递增 TextView。因此,我们分配 incrementer 一个 Runnable 可以增加 TextViewRunnable 还调用 postDelayed() 说“嘿,运行 这个 RunnableDELAY 毫秒后再次出现”。我们第一次 run() Runnable 自己,在开始时填充 TextView 并触发 postDelayed() 调用以安排下一个增量。

然后将继续“循环”(run() 调用 postDelayed(),安排将来调用 run())直到用户再次单击该按钮。然后,我们看到 incrementer 不是 而不是 null,因此我们必须递增 TextView 并且需要停止。 removeCallbacks() 取消安排最后一个 postDelayed() 调用,停止“循环”。我们将 incrementer 设置为 null 主要是为了为下一次按钮点击做好准备。