Java Android检查是否按下了横幅
我试图找到一种方法来检查横幅(广告)是否被检查,但它更难 我试过了Java Android检查是否按下了横幅,java,android,touch,listener,Java,Android,Touch,Listener,我试图找到一种方法来检查横幅(广告)是否被检查,但它更难 我试过了 adView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //TODO } }); 但它不工作(我放了一个调试打印,但它不工作…) 然后我尝试创建一个LinearLayout来包装adView并将侦听器放在线性布局上
adView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//TODO
}
});
但它不工作(我放了一个调试打印,但它不工作…)
然后我尝试创建一个LinearLayout来包装adView并将侦听器放在线性布局上,但它仍然不起作用
然后我尝试创建一个包含所有显示的更大的布局,并在其中添加了adView。我想在里面放一个onTouchListener,检查坐标,检查是否按下了add。但我真的不明白如何找到我的横幅的正确坐标(我创建了一个方法,获得x和y偏移以及放置横幅所用的重力)来检查,我真的希望有更好的方法存在。此外,我发现,如果我按下横幅,该方法不会执行,但只有在按下屏幕的其他部分时才会执行
那么,有什么办法知道吗?我不想知道是否加载了横幅页面,或者是否将其重定向到市场或浏览器,我只想知道是否按下了横幅
也许设置一个在触摸屏幕时运行的检查,然后检查listner方法是否运行,如果没有运行,则检查横幅是否被触摸可以工作,但我不知道如何实现它
你知道怎么做吗
谢谢你你有没有试着在你的点击活动中敬酒 应用程序是否编译并运行
你有重复的身份证吗 好的,我解决了,因为我浪费了很多时间来寻找解决方案,所以我把它贴在这里,这样每个人都可以找到并使用它
LinearLayout containAdView = null;
if(registerTouch)
{
containAdView = new LinearLayout(pActivity){
public boolean onInterceptTouchEvent(MotionEvent ev)
{
if(ev.getAction() == MotionEvent.ACTION_UP)
{
bannerClicked(pActivity, shared_Prefs_name, shared_Save_name);
if(mainMenu.ISDEV)
{
final Toast tost = Toast.makeText(pActivity, "Banner Clicked", Toast.LENGTH_SHORT);
tost.show();
}
}
return super.onInterceptTouchEvent(ev);
}
};
containAdView.addView(adView, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT));
}
我不知道为什么其他人没有提到你使用的是哪一个adView? 大多数(就像我所知道的)都提供了一个可以提供的监听器,它在点击广告时有一个回调 例如,MobFox有
setBannerListener(BannerListener)
,该侦听器有一个方法adClicked()
。其他提供程序(如admob、inmobi、mopub)都有类似的侦听器,您可以进行设置
这应该是解决问题的方法,而不是侵入containerview。对于那些仍然不知道如何: 它使用AdListener
adView.setAdListener(new AdListener() {
public void onDismissScreen(Ad arg0) {
Toast.makeText(BannerAdListener.this, "Back to app", Toast.LENGTH_SHORT).show();
}
public void onFailedToReceiveAd(Ad arg0, ErrorCode arg1) {
Toast.makeText(BannerAdListener.this, "Error loading", Toast.LENGTH_SHORT).show();
}
public void onLeaveApplication(Ad arg0) {
Toast.makeText(BannerAdListener.this, "Left app", Toast.LENGTH_SHORT).show();
}
public void onPresentScreen(Ad arg0) {
Toast.makeText(BannerAdListener.this, "Sumthin sumthin", Toast.LENGTH_SHORT).show();
}
public void onReceiveAd(Ad arg0) {
Toast.makeText(BannerAdListener.this, "Ad Received", Toast.LENGTH_SHORT).show();
}
});
我想你只要在广告横幅上添加一个
OnTouchListener
。调用onTouch
时,会单击它。不需要检查坐标。@stevehb你试过了吗?就我而言,我已经试过了,但没有效果。。可能是因为触摸被传递给了处理横幅的活动,并且没有为触摸输入提供任何回调。我以前在视图中添加了OnClickListener
而不是OnTouchListener
时遇到过麻烦。点击式监听器从未收到过输入,但触摸式监听器收到了,我想这可能是你的问题。另外,我认为活动
不会进行任何输入处理。如果你可以发布一个示例活动,加载横幅视图,添加触摸监听器,但仍然没有响应,那么就更容易弄清楚了。如果我敬酒会有什么不同吗?我不认为。。代码根本不被执行。。是的,它运行正常,只是从来没有调用onClickListener。视图是在运行时创建的,因此没有id。您打开了帖子,我正在试图找到一个方法来检查是否选中了横幅(ad)