【问题标题】:Counting clicks using integer++ OnTouchListener使用整数 ++ OnTouchListener 计算点击次数
【发布时间】:2014-07-30 12:17:04
【问题描述】:

我有一种方法来计算点击次数,然后在点击一些次数后执行某些操作。它工作正常,但 OnTouchListener 存在问题。 问题是只要用户按下按钮,整数就会增加并且计数不正确。我得到的不是 1 次单击,而是 10-15 取决于用户按下按钮的时间。 我怎样才能让它每次点击添加+1? 我的方法:

private void clickCounter() {
        String valueFromFile = read("countFile");
        int intClickCounter = Integer.valueOf(valueFromFile.toString());
        intClickCounter++;
        valueFromFile = Integer.toString(intClickCounter);
        write("" + valueFromFile, "countFile");
        Toast.makeText(MainActivity.this, valueFromFile, Toast.LENGTH_SHORT)
                .show();
        if (intClickCounter == 10) {

然后是onTouchListener:

@Override
     public boolean onTouch(View v, MotionEvent event) {
        int id = v.getId();
        clickCounter();
        switch(id){
                      case R.id.button1:
etc

【问题讨论】:

  • 使用监听器 onClick 而不是 onTouch !

标签: android integer ontouchlistener


【解决方案1】:

只需应用以下条件

clickButton.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {

                if(motionEvent.getAction()==MotionEvent.ACTION_UP){
                    clickCounter();
                }
                return false;
            }
        });

【讨论】:

  • 哦,是的,为什么我没有想到这一点。谢谢
  • 是的,但我需要 onTouchListener。用 clicklistener 做我想做的事是不可能的
猜你喜欢
  • 2012-08-11
  • 1970-01-01
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
  • 2014-09-26
  • 2014-08-14
  • 2021-12-12
相关资源
最近更新 更多