Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用处理程序增加textview的值?(或其他解决方案)_Android_Handler_Android Handler - Fatal编程技术网

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

Android 如何使用处理程序增加textview的值?(或其他解决方案),android,handler,android-handler,Android,Handler,Android Handler,首先,我已经试过了: 但是我有59个错误,是的,59个,正如我以前使用Eclipse时清楚地告诉你你有什么样的错误,如何修复它,Android Studio看起来是为有经验的人设计的。。。我甚至不知道该怎么做,去修复所有的错误(顺便说一句,当我试图修复某个错误时,我不知何故又破了10次) 所以。。。给定一个按钮和一个文本视图,如何增加文本视图(例如,点击游戏)并使其停止再次按下同一按钮: 如何设置每次“单击”之间的间隔 顺便说一下。。。我不需要解决方案,我需要了解线程或处理程序是如何工作的,是的

首先,我已经试过了:


但是我有59个错误,是的,59个,正如我以前使用Eclipse时清楚地告诉你你有什么样的错误,如何修复它,Android Studio看起来是为有经验的人设计的。。。我甚至不知道该怎么做,去修复所有的错误(顺便说一句,当我试图修复某个错误时,我不知何故又破了10次)

所以。。。给定一个按钮和一个文本视图,如何增加文本视图(例如,点击游戏)并使其停止再次按下同一按钮: 如何设置每次“单击”之间的间隔


顺便说一下。。。我不需要解决方案,我需要了解线程或处理程序是如何工作的,是的,每个人都会向我推荐文档,但我需要看到一个简单的示例,一部分一部分地解释,通过阅读文档,我将比我已经了解的更多

给定一个按钮和一个文本视图,我如何增加文本视图(例如,点击游戏)并使其停止再次按下同一按钮:以及如何设置每次“点击”之间的间隔

根据您的
分数
单击问题中的
小部件:

步骤1:在活动或片段中添加一个
Runnable
字段。在这里,我将其称为
incrementer

步骤2:在活动或片段中定义一个
静态最终int DELAY
字段,以毫秒为单位定义所需的延迟周期(“间隔”)

步骤3:让您的
按钮
使用
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
内容,递增的是实际代码

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


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

从第一个错误开始。这是怎么一回事?是哪一行代码导致的?“当我试图修复某个问题时,不知何故我又打破了10个”这是所有程序员的共同经历,即使是我们中最有经验的人“我需要了解线程或处理程序到底是如何工作的”线程用于执行需要很长时间才能完成的任务,例如读取文件或下载图像。处理程序用于线程之间的通信。要完成手头的任务,您不需要这两个选项中的任何一个。请参阅我的第一条评论和您的问题,以显示您会遇到哪些错误。解决编译器错误是学习过程的一部分。对于迟到的“正确答案”勾选:D表示抱歉,并感谢您的解释。
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;
    }
  }
}