我有一個列表視圖填充了來自遠程數據庫的數據。當用戶點擊某個項目時,它們將被帶到詳細信息屏幕。我的問題是,如何在用戶點擊列表項時顯示廣告,而不是每次點擊列表項時顯示廣告。我不想在每次點擊5次左右之後顯示廣告,並且每次點擊列表項都會點擊一次。我會怎麼做呢?我假設列表視圖onItemClickListener中的某種邏輯。我只是不知道這個邏輯是什麼樣子。如何在用戶點擊listview項目後顯示廣告,但不是Android中的每個項目?
編輯
每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);
}
});
EDIT 2
確定。我看到出了什麼問題。根據用戶8的回答,當用戶點擊5次時,如果用戶點擊次數少於5次,則不顯示任何內容。所以我添加了一個else語句,現在用戶可以單擊列表項並轉到詳細活動。每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);
}
});
你有任何反對使用靜態計數器變量? –