我在布局中有一个EditText,并且我还在布局的底部放置了AdMob广告,当有人在EditText中输入某些东西时,假设这是键盘按钮右上角的“完成”按钮,但是在我添加AdMob后,它有一个“下一步”按钮,当您按下它时,它会关注广告!有没有办法禁用它?
我的XML:
<com.google.ads.AdView android:id="@+id/adView"
android:focusable="false"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adUnitId="XXXXXXXXXXX"
ads:adSize="BANNER"
ads:testDevices="XXXXXXXXXXX"/>
我的Java:
if (showAds == true) {
AdView adView = (AdView)this.findViewById(R.id.adView);
adView.loadAd(new AdRequest());
}
注意:我不知道这是否重要,但我使用的是ViewPager,因此AdView位于我的Main.xml布局文件中,而EditText位于我的ViewPager膨胀的布局上。
答案 0 :(得分:5)
如果您想在EditText
中保留“完成”按钮,请将此属性添加到其中:android:imeOptions="actionDone"
。这将强制“完成”按钮出现在软键盘上。
如果您想要保留“下一步”按钮,并让其跳过AdView
,则可以在点击“下一步”时使用this method跳过AdView
。< / p>
答案 1 :(得分:0)
这对我不起作用,在editText失去焦点ACTION_DONE被触发后,AdMob webView获得焦点并保持专注,除非用户触摸屏幕。要纠正此问题,请从当前焦点移除焦点或关闭软键盘
etAddNote.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
activity.getCurrentFocus().clearFocus();
return true;
}
return false;
}
});
或关闭软键盘
etAddNote.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
View view = activity.getCurrentFocus();
if (view != null) {
InputMethodManager imm = (InputMethodManager) activity
.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
return true;
}
return false;
}
});
答案 2 :(得分:0)
只需在根布局中添加此标记即可。
android:descendantFocusability="blocksDescendants"
实施例
<ScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout
android:descendantFocusability="blocksDescendants"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
.
.
.
.
</LinearLayout>
</ScrollView>