问题: - 两个点击计数器相互交互

发布于 2025-02-11 18:17:24 字数 6721 浏览 1 评论 0原文

我有5个按钮和2个菜单按钮:

  1. 第一个列表
  • 随机,
  • 第二
  1. 个列表
  • 副本,
  • 共享,
  • 第一个报价,
  • 最新报价

菜单按钮是第一个列表和

第一个按钮列表中的最新报价,我添加了一个计数器在10点后,应显示10个单击后的间隙广告。

在第二个按钮列表中,我添加了一个3个计数器,这意味着在3个单击后应显示间隙广告。

现在,当第一个按钮计数器达到9时,问题就到了(一键后,它应显示AD),然后按2个按钮2) - > AD正在显示

MainActivity.java

int triggerClicks = 3; // for copy,share,firstquote & latestquote
int countClicks = 0;
int triggerClicksNav = 10;// for back,next & random

@SuppressLint("SetTextI18n")
private void latestQuote() {
    countClicks++;
    if (countClicks != 3) {
        position = quotes_list.size() - 1;
        quotesTxt.setText(quotes_list.get(position));
        countTxt.setText(position + "/" + quotes_list.size());
        Log.d(TAG, quotes_list.toString());
    }
    if (mInterstitialAd != null && countClicks >= triggerClicks) {
        mInterstitialAd.show(HomeActivity.this);
        mInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback() {
            @Override
            public void onAdDismissedFullScreenContent() {
                super.onAdDismissedFullScreenContent();
                mInterstitialAd = null;
                intertitalAd();
                position = quotes_list.size() - 1;
                quotesTxt.setText(quotes_list.get(position));
                countTxt.setText(position + "/" + quotes_list.size());
                Log.d(TAG, quotes_list.toString());
                countClicks = 0;
            }
        });
    }
}

@SuppressLint("SetTextI18n")
private void firstQuote() {
    countClicks++;
    if (countClicks != 3) {
        position = 0;
        quotesTxt.setText(quotes_list.get(position));
        countTxt.setText(position + "/" + quotes_list.size());
        Log.d(TAG, quotes_list.toString());
    }
    if (mInterstitialAd != null && countClicks >= triggerClicks) {
        mInterstitialAd.show(HomeActivity.this);
        mInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback() {
            @Override
            public void onAdDismissedFullScreenContent() {
                super.onAdDismissedFullScreenContent();
                mInterstitialAd = null;
                intertitalAd();
                position = 0;
                quotesTxt.setText(quotes_list.get(position));
                countTxt.setText(position + "/" + quotes_list.size());
                countClicks = 0;
            }
        });
    }
}


@SuppressLint("SetTextI18n")
private void back() {
    countClicks++;
    if (position > 0) {
        position = (position - 1) % quotes_list.size();
        quotesTxt.setText(quotes_list.get(position));
        countTxt.setText(position + "/" + quotes_list.size());
        Log.d(TAG, quotes_list.toString());
    }
    if (mInterstitialAd != null && countClicks >= triggerClicksNav) {
        mInterstitialAd.show(HomeActivity.this);
        mInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback() {
            @Override
            public void onAdDismissedFullScreenContent() {
                super.onAdDismissedFullScreenContent();
                mInterstitialAd = null;
                intertitalAd();
                countClicks = 0;
            }
        });
    }
}

@SuppressLint("SetTextI18n")
private void next() {
    countClicks++;
    position = (position + 1) % quotes_list.size();
    quotesTxt.setText(quotes_list.get(position));
    countTxt.setText(position + "/" + quotes_list.size());
    if (mInterstitialAd != null && countClicks >= triggerClicksNav) {
        mInterstitialAd.show(HomeActivity.this);
        mInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback() {
            @Override
            public void onAdDismissedFullScreenContent() {
                super.onAdDismissedFullScreenContent();
                mInterstitialAd = null;
                intertitalAd();
                countClicks = 0;
            }
        });
    }
}

@SuppressLint("SetTextI18n")
private void random() {
    countClicks++;
    position = randomQ.nextInt(quotes_list.size());
    quotesTxt.setText(quotes_list.get(position));
    countTxt.setText(position + "/" + quotes_list.size());
    if (mInterstitialAd != null && countClicks >= triggerClicksNav) {
        mInterstitialAd.show(HomeActivity.this);
        mInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback() {
            @Override
            public void onAdDismissedFullScreenContent() {
                super.onAdDismissedFullScreenContent();
                mInterstitialAd = null;
                intertitalAd();
                countClicks = 0;
            }
        });
    }
}


private void copy() {
    countClicks++;
    ClipboardManager clipboardManager = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
    ClipData clipData = ClipData.newPlainText("text", quotesTxt.getText());
    if (clipboardManager != null) {
        clipboardManager.setPrimaryClip(clipData);
    }
    Toast.makeText(getApplicationContext(), "Copied", Toast.LENGTH_SHORT).show();
    if (mInterstitialAd != null && countClicks >= triggerClicks) {
        mInterstitialAd.show(HomeActivity.this);
        mInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback() {
            @Override
            public void onAdDismissedFullScreenContent() {
                super.onAdDismissedFullScreenContent();
                mInterstitialAd = null;
                intertitalAd();
                countClicks = 0;
            }
        });
    }
}

private void share() {
    countClicks++;
    Intent intent = new Intent(Intent.ACTION_SEND);
    intent.setType("text/plain");
    intent.putExtra(Intent.EXTRA_TEXT, quotesTxt.getText());
    startActivity(Intent.createChooser(intent, "Share to"));
    if (mInterstitialAd != null && countClicks >= triggerClicks) {
        mInterstitialAd.show(HomeActivity.this);
        mInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback() {
            @Override
            public void onAdDismissedFullScreenContent() {
                super.onAdDismissedFullScreenContent();
                mInterstitialAd = null;
                intertitalAd();
                countClicks = 0;
            }
        });
    }
 }

,如果我为每个按钮分配其他计数器,但我不喜欢此解决方案,请解决问题,请添加其他解决方案

int countClicksBack = 0;
int countClicksRandom = 0;
int countClicksNext = 0;
int countClicksCopy = 0;
int countClicksShare = 0;
int countClicksFirst = 0;
int countClicksLatest = 0;

I have 5 buttons and 2 menu button:

  1. First list
  • back,
  • random,
  • next
  1. Second list
  • copy,
  • share,
  • first quote,
  • latest quote

The menu buttons are the first quote and the latest quote

In the first list of buttons, I have added a counter of 10, which means after 10 clicks the interstitial ad should be shown.

In the second list of buttons, I have added a counter of 3, which means after 3 clicks the interstitial ad should be shown.

Now the problem comes when the first button counter reach 9 (means after one click it should shows the ad) and I press any button from 2) -> ad is showing

MainActivity.java

int triggerClicks = 3; // for copy,share,firstquote & latestquote
int countClicks = 0;
int triggerClicksNav = 10;// for back,next & random

@SuppressLint("SetTextI18n")
private void latestQuote() {
    countClicks++;
    if (countClicks != 3) {
        position = quotes_list.size() - 1;
        quotesTxt.setText(quotes_list.get(position));
        countTxt.setText(position + "/" + quotes_list.size());
        Log.d(TAG, quotes_list.toString());
    }
    if (mInterstitialAd != null && countClicks >= triggerClicks) {
        mInterstitialAd.show(HomeActivity.this);
        mInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback() {
            @Override
            public void onAdDismissedFullScreenContent() {
                super.onAdDismissedFullScreenContent();
                mInterstitialAd = null;
                intertitalAd();
                position = quotes_list.size() - 1;
                quotesTxt.setText(quotes_list.get(position));
                countTxt.setText(position + "/" + quotes_list.size());
                Log.d(TAG, quotes_list.toString());
                countClicks = 0;
            }
        });
    }
}

@SuppressLint("SetTextI18n")
private void firstQuote() {
    countClicks++;
    if (countClicks != 3) {
        position = 0;
        quotesTxt.setText(quotes_list.get(position));
        countTxt.setText(position + "/" + quotes_list.size());
        Log.d(TAG, quotes_list.toString());
    }
    if (mInterstitialAd != null && countClicks >= triggerClicks) {
        mInterstitialAd.show(HomeActivity.this);
        mInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback() {
            @Override
            public void onAdDismissedFullScreenContent() {
                super.onAdDismissedFullScreenContent();
                mInterstitialAd = null;
                intertitalAd();
                position = 0;
                quotesTxt.setText(quotes_list.get(position));
                countTxt.setText(position + "/" + quotes_list.size());
                countClicks = 0;
            }
        });
    }
}


@SuppressLint("SetTextI18n")
private void back() {
    countClicks++;
    if (position > 0) {
        position = (position - 1) % quotes_list.size();
        quotesTxt.setText(quotes_list.get(position));
        countTxt.setText(position + "/" + quotes_list.size());
        Log.d(TAG, quotes_list.toString());
    }
    if (mInterstitialAd != null && countClicks >= triggerClicksNav) {
        mInterstitialAd.show(HomeActivity.this);
        mInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback() {
            @Override
            public void onAdDismissedFullScreenContent() {
                super.onAdDismissedFullScreenContent();
                mInterstitialAd = null;
                intertitalAd();
                countClicks = 0;
            }
        });
    }
}

@SuppressLint("SetTextI18n")
private void next() {
    countClicks++;
    position = (position + 1) % quotes_list.size();
    quotesTxt.setText(quotes_list.get(position));
    countTxt.setText(position + "/" + quotes_list.size());
    if (mInterstitialAd != null && countClicks >= triggerClicksNav) {
        mInterstitialAd.show(HomeActivity.this);
        mInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback() {
            @Override
            public void onAdDismissedFullScreenContent() {
                super.onAdDismissedFullScreenContent();
                mInterstitialAd = null;
                intertitalAd();
                countClicks = 0;
            }
        });
    }
}

@SuppressLint("SetTextI18n")
private void random() {
    countClicks++;
    position = randomQ.nextInt(quotes_list.size());
    quotesTxt.setText(quotes_list.get(position));
    countTxt.setText(position + "/" + quotes_list.size());
    if (mInterstitialAd != null && countClicks >= triggerClicksNav) {
        mInterstitialAd.show(HomeActivity.this);
        mInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback() {
            @Override
            public void onAdDismissedFullScreenContent() {
                super.onAdDismissedFullScreenContent();
                mInterstitialAd = null;
                intertitalAd();
                countClicks = 0;
            }
        });
    }
}


private void copy() {
    countClicks++;
    ClipboardManager clipboardManager = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
    ClipData clipData = ClipData.newPlainText("text", quotesTxt.getText());
    if (clipboardManager != null) {
        clipboardManager.setPrimaryClip(clipData);
    }
    Toast.makeText(getApplicationContext(), "Copied", Toast.LENGTH_SHORT).show();
    if (mInterstitialAd != null && countClicks >= triggerClicks) {
        mInterstitialAd.show(HomeActivity.this);
        mInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback() {
            @Override
            public void onAdDismissedFullScreenContent() {
                super.onAdDismissedFullScreenContent();
                mInterstitialAd = null;
                intertitalAd();
                countClicks = 0;
            }
        });
    }
}

private void share() {
    countClicks++;
    Intent intent = new Intent(Intent.ACTION_SEND);
    intent.setType("text/plain");
    intent.putExtra(Intent.EXTRA_TEXT, quotesTxt.getText());
    startActivity(Intent.createChooser(intent, "Share to"));
    if (mInterstitialAd != null && countClicks >= triggerClicks) {
        mInterstitialAd.show(HomeActivity.this);
        mInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback() {
            @Override
            public void onAdDismissedFullScreenContent() {
                super.onAdDismissedFullScreenContent();
                mInterstitialAd = null;
                intertitalAd();
                countClicks = 0;
            }
        });
    }
 }

The problem get solved if I assign a different counter for every buttons but I don't like this solution, please if u have another solution please add it

int countClicksBack = 0;
int countClicksRandom = 0;
int countClicksNext = 0;
int countClicksCopy = 0;
int countClicksShare = 0;
int countClicksFirst = 0;
int countClicksLatest = 0;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

七月上 2025-02-18 18:17:24

问题在于,您使用相同的计数器显示您的广告,但是,如果我理解,您想要2个不同的计数器:一个用于按钮,一个用于菜单。正确的 ?因此,您必须声明2个不同的计数器。

顺便说一句,您的代码不是“清洁”:用于显示您的广告的代码可以用自己的方法导出,类似方法:

private void showAd() {
   mInterstitialAd.show(HomeActivity.this);
   mInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback() {
      @Override
      public void onAdDismissedFullScreenContent() {
         super.onAdDismissedFullScreenContent();
         mInterstitialAd = null;
         intertitalAd();
         countClicks = 0;
      }
   });
}

private void back() {
    // your stuff
    if (mInterstitialAd != null && countClicks >= triggerClicksNav) {
        showAd();
    }
}

The problem is that you're using the same counter to display your ad but, If I've understood, you want 2 different counter : one for buttons and one for menus. Right ? So, you have to declare 2 different counters.

By the way, your code is not "clean": the code used to display your ad can be exported in a own method, something like that:

private void showAd() {
   mInterstitialAd.show(HomeActivity.this);
   mInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback() {
      @Override
      public void onAdDismissedFullScreenContent() {
         super.onAdDismissedFullScreenContent();
         mInterstitialAd = null;
         intertitalAd();
         countClicks = 0;
      }
   });
}

private void back() {
    // your stuff
    if (mInterstitialAd != null && countClicks >= triggerClicksNav) {
        showAd();
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文