AdMob und Keyboard Probleme

  • Antworten:6
RWarnecke
  • Forum-Beiträge: 4

20.04.2015, 08:39:31 via Website

Hallo zusammen,

in meiner App habe ich drei EditText-Felder und ein AdMob-Banner am unteren Rand des Smartphones. Bei allen drei EditText-Feldern habe ich nur die numerische Tastatur hinterlegt.

Jetzt ist es so, dass wenn ich die App ohne AdMob Banner starte, dann wird automatisch das erste EditText-Feld focusiert und das Keyboard wird angezeigt. Die Eingaben werden akzeptiert und das Keyboard schließt sich auch wieder, nachdem alle drei Eingaben gemacht wurden. Wird jetzt die App mit dem AdMob-Banner gestartet, dann wird das erste Editext-Feld nicht autoatisch fokusiert und wenn ich dann die Eingabe bestätige kommt sofort die Alpha-Numerische Tastatur.

Was könnte hier der Auslöser für sein ?

Antworten
Sven R.
  • Forum-Beiträge: 1.904

20.04.2015, 13:46:34 via App

RWarnecke

Was könnte hier der Auslöser für sein ?

AdMob 😁

Ich denke, mit AdMob wird beim Start der App das AdMob View zuerst fokussiert. Darum mach mal in der layout.xml das AdMob View nicht focusable. Dann kann man es zwar nicht mehr mit den Pfeilen auf einer physischen Tastatur fokussieren, aber dieser Fall sollte nicht eintreten (keine wird nur mit einer Tastatur auf eine Werbung klicken 😀)

Wenn dir mein Beitrag gefällt, kannst dich einfach mit dem 👍 "Danke"-Button auf der Website dieses Forums bedanken. 😀

Why Java? - Because I can't C#

Antworten
RWarnecke
  • Forum-Beiträge: 4

21.04.2015, 05:30:05 via Website

Hallo Sven,

danke erstmal für Deine Antwort. Leider hat es keinen Erfolg gebracht, wenn ich das AdMob Banner den Wert focusable auf false setze. Das Admob-Banner habe ich folgendermaßen in ein Haupt Relative Layout eingebaut :

   <ScrollView
    android:id="@+id/MainScrollView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_above="@+id/adViewLayout"
    android:layout_margin="8dp">

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        /* Mehrere TextView, EditText und Buttons */

    </RelativeLayout>
</ScrollView>

<LinearLayout
    android:id="@+id/adViewLayout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="bottom"
    android:layout_alignParentBottom="true">

    <com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:focusable="false"
        ads:adSize="SMART_BANNER"
        ads:adUnitId="@string/banner_ad_unit_id">
    </com.google.android.gms.ads.AdView>

</LinearLayout>

Zusätzlich habe ich noch in der Funktion onCreate diesen Quelltext für das AdMob stehen :

    // To set the adView with some listener
    final AdView adView = (AdView) this.findViewById(R.id.adView);
    adView.setAdListener(new AdListener() {
        @Override
        public void onAdFailedToLoad(int errorCode) {
            super.onAdFailedToLoad(errorCode);
            adView.setVisibility(View.GONE);
        }

        @Override
        public void onAdLoaded() {
            super.onAdLoaded();
            adView.setVisibility(View.VISIBLE);
        }
    });

    //request TEST ads to avoid being disabled for clicking your own ads
    AdRequest adRequest = new AdRequest.Builder()
            .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)// This is for emulators
            //test mode on DEVICE (this example code must be replaced with your device uniquq ID)
            .build();
    adView.loadAd(adRequest);

Wird dieser Teil auskommentiert, dann kann ich meine drei Eingabefelder nacheinander eingeben und es funktioniert alles wie gewohnt. Ist dieser Teil nicht auszementiert, so wird das Banner angezeigt. Bei den ersten beiden Feldern funktioniert die Eingabe noch, so das in das nächste Feld weitergesprungen wird, aber beim letzten Feld wird mit nach Bestätigung der Eingabe automatisch die Alpha-Numerische Tastatur (Standardtastatur) angezeigt.

Antworten
Sven R.
  • Forum-Beiträge: 1.904

21.04.2015, 07:05:14 via App

Dann scheint das AdView den Fokus zu requesten, wenn es die Werbung geladen (Obwohl das eigentlich nicht gehen sollte). Mach mal in den Callback zu onAdLoaded ein AdView.clearFocus(). Dann sollte das erste fukussierbare View(EditText) fokussiert werden.

— geändert am 21.04.2015, 07:06:53

Wenn dir mein Beitrag gefällt, kannst dich einfach mit dem 👍 "Danke"-Button auf der Website dieses Forums bedanken. 😀

Why Java? - Because I can't C#

Antworten
RWarnecke
  • Forum-Beiträge: 4

21.04.2015, 17:21:17 via Website

Nee, bringt leider auch nichts. Es ist immer noch so, dass beim Bestätigen der dritten Eingabe sofort die Alpha-Numerische Tastatur (Standardtastatur) angezeigt wird.

Edit :
Wenn das Banner angezeigt wird, wird beim letzten EditText kein Done-Button auf der numerischen Tastatur angezeigt sondern ein Next-Button. Schalte ich das Banner ab, kommentiere also den Quelltext aus dem OnCreate, dann habe ich einen Done-Button auf der numerischen Tastatur. Irgendwie blicke ich das ganze nicht. Kann mir das jemand bitte erklären ?

— geändert am 21.04.2015, 17:57:25

Antworten
Sven R.
  • Forum-Beiträge: 1.904

21.04.2015, 21:51:03 via App

http://stackoverflow.com/a/11214335

Wenn dir mein Beitrag gefällt, kannst dich einfach mit dem 👍 "Danke"-Button auf der Website dieses Forums bedanken. 😀

Why Java? - Because I can't C#

Antworten
RWarnecke
  • Forum-Beiträge: 4

21.04.2015, 22:54:40 via Website

Vielen Dank, jetzt funktioniert es wieder auch mit Banner.

Antworten