1

我在布局中有一个 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"/>

我的爪哇:

    if (showAds == true) {
    AdView adView = (AdView)this.findViewById(R.id.adView);
    adView.loadAd(new AdRequest());
                         }

注意:我不知道这是否重要,但我使用的是 ViewPager,因此 AdView 在我的 Main.xml 布局文件中,而 EditText 在我的 ViewPager 膨胀的布局上。

4

3 回答 3

5

如果您想在 中保留“完成”按钮,请EditText向其中添加此属性:android:imeOptions="actionDone". 这将强制“完成”按钮出现在软键盘上。

如果您想保留“下一步”按钮,并让它跳过AdView,您可以使用此方法AdView在点击“下一步”时跳过。

于 2012-06-26T19:09:09.403 回答
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>
于 2017-10-09T21:56:00.277 回答
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;
        }
    });
于 2016-11-29T12:33:01.793 回答