gpt4 book ai didi

android - 如何在用户点击 ListView 项目后显示广告,但不是针对 Android 中的每个项目?

转载 作者:太空狗 更新时间:2023-10-29 13:13:14 24 4
gpt4 key购买 nike

我有一个 ListView ,其中填充了来自远程数据库的数据。当用户单击某个项目时,他们将被带到详细信息屏幕。我的问题是当用户点击列表项时我如何显示和广告,而不是每次他们点击列表项时。我不想每次点击列表项时都显示广告,就像每 5 次左右点击后一样。我该怎么做呢?我假设 ListView onItemClickListener 中存在某种逻辑。我只是不知道该逻辑会是什么样子。

编辑

根据 user8 的回答,我向 onItemClickListener 添加了一个计数器和共享首选项。但是,当我单击某个项目时没有任何反应。甚至看不到 DetailActivity。这是我的代码:

    list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//Get item at position
RowData item = (RowData)parent.getItemAtPosition(position);

final Intent intent = new Intent(MainActivity.this, DetailActivity.class);

mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdClosed() {
requestNewInterstitial();
startActivity(intent);
}
});

SharedPreferences prefs = getPreferences(MODE_PRIVATE);


int clickCount = prefs.getInt(KEY_CLICK_COUNT, 1);
if (clickCount % 5 == 0) {
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
} else {
startActivity(intent);
}
}
clickCount++;
prefs.edit().putInt(KEY_CLICK_COUNT, clickCount).apply();

//Start details activity
//startActivity(intent);
}
});

编辑 2

好的。我知道出了什么问题。根据 user8 的回答,当用户点击 5 次时,它会显示广告,但如果用户点击次数少于 5 次,则什么也不会发生。所以我添加了一个 else 语句,所以现在用户可以单击一个列表项并转到详细信息 Activity 。广告仍会在每 5 次点击后展示,但不会在广告之间“过时”。这是工作代码:

    list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//Get item at position
RowData item = (RowData)parent.getItemAtPosition(position);

final Intent intent = new Intent(MainActivity.this, DetailActivity.class);

mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdClosed() {
requestNewInterstitial();
startActivity(intent);
}
});

SharedPreferences prefs = getPreferences(MODE_PRIVATE);


int clickCount = prefs.getInt(KEY_CLICK_COUNT, 1);
if (clickCount % 5 == 0) {
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
} else {
startActivity(intent);
}
}else{
startActivity(intent);
}
clickCount++;
prefs.edit().putInt(KEY_CLICK_COUNT, clickCount).apply();

//Start details activity
//startActivity(intent);
}
});

最佳答案

您可以在 ListViewOnItemClickListener 中执行类似的操作:

SharedPreferences prefs = getPreferences(MODE_PRIVATE);

int clickCount = prefs.getInt(KEY_CLICK_COUNT, 0);
if (clickCount > 0 && clickCount % 5 == 0) {
showAd();
}
clickCount++;
prefs.edit().putInt(KEY_CLICK_COUNT, clickCount).apply();

关于android - 如何在用户点击 ListView 项目后显示广告,但不是针对 Android 中的每个项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37739437/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com