Admob banner not at the bottom of the screen

2019-07-11 05:24发布

I wrote code for Admob. This is my layout.xml file code:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff"
android:id="@+id/relativeLayoutHomeParent"
tools:context=".Home" xmlns:app="http://schemas.android.com/apk/lib/com.google.ads">

<RelativeLayout
    android:id="@+id/relativeLayoutHomeTopBar"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true" >

    <TextView
        android:id="@+id/textView1"
        android:text="Home"
        style="@style/screen_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <ImageView
        android:id="@+id/imageViewHomeSettings"
        android:layout_width="22dp"
        android:layout_height="22dp"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:src="@drawable/set_settings"
        android:layout_marginRight="10dp" />

</RelativeLayout>

<View
    android:id="@+id/view1"
    android:layout_width="match_parent"
    android:layout_height="5dp"
    android:layout_below="@+id/relativeLayoutHomeTopBar"
    android:background="@drawable/shadow" />

<ListView
    android:id="@+id/listViewHome"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:divider="#BDBDBD"
    android:dividerHeight="1dp"
    android:layout_below="@+id/view1" >
</ListView>

<com.google.ads.AdView
    android:id="@+id/adView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    app:adSize="BANNER"
    app:adUnitId="a1512f50d8c3692"
    app:loadAdOnCreate="true"
    app:testDevices="TEST_EMULATOR, TEST_DEVICE_ID" >
</com.google.ads.AdView>

Output:

Screen shot

my activity.java code:

package com.walletapp;

import android.app.Activity;
 import android.app.AlertDialog;
 import android.app.AlertDialog.Builder;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.pm.ActivityInfo;
 import android.database.sqlite.SQLiteDatabase;
 import android.os.Bundle;
 import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
   import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;

import com.google.ads.AdRequest;
import com.google.ads.AdSize;
import com.google.ads.AdView;

public class Home extends Activity
{
ListView listview_home;
ImageView imageview_settings;
SQLiteDatabase database;
String database_name = "WalletAppDatabase";
private AdView adView;

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);

    this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

    imageview_settings = (ImageView) findViewById(R.id.imageViewHomeSettings);
    imageview_settings.setClickable(true);
    imageview_settings.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v)
        {               
            startActivity(new Intent(Home.this, Settings.class));
        }
    });

    String[] home_items = new String[] {"All", "Categories", "Tags", "Favourites"};
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.single_row_home, R.id.textViewSingleRowHome, home_items);
    listview_home = (ListView) findViewById(R.id.listViewHome);
    listview_home.setAdapter(adapter);
    listview_home.setOnItemClickListener(new OnItemClickListener()
                                        {
                                            @Override
                                            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)
                                            {
                                                String selected = ((TextView) arg1.findViewById(R.id.textViewSingleRowHome)).getText().toString();

                                                switch(arg2)
                                                {
                                                    case 0:

                                                        Toast.makeText(getBaseContext(), "Yet to be code for "+selected, Toast.LENGTH_SHORT).show();
                                                        break;

                                                    case 1:

                                                        Toast.makeText(getBaseContext(), "Yet to be code for "+selected, Toast.LENGTH_SHORT).show();
                                                        break;

                                                    case 2:

                                                        Toast.makeText(getBaseContext(), "Yet to be code for "+selected, Toast.LENGTH_SHORT).show();
                                                        break;

                                                    case 3:

                                                        Toast.makeText(getBaseContext(), "Yet to be code for "+selected, Toast.LENGTH_SHORT).show();
                                                        break;
                                                }
                                            }
                                        }
                                    );

    adView = new AdView(this, AdSize.BANNER, "a1512f50d8c3692");
    RelativeLayout layout = (RelativeLayout)findViewById(R.id.relativeLayoutHomeParent);
    layout.addView(adView);
    adView.loadAd(new AdRequest());
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
    if(keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0)
    {
        showQuitDialog();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

private void showQuitDialog()
{
    AlertDialog.Builder adb = new Builder(this);
    adb.setTitle("Warning !!!");
    adb.setMessage("Are you sure you want to quit ?");
    adb.setIcon(R.drawable.ic_launcher);
    adb.setPositiveButton("Yes",new DialogInterface.OnClickListener()
                                    {
                                        public void onClick(DialogInterface arg0, int arg1)
                                        {
                                            if(database.isOpen())
                                                database.close();
                                            finish();
                                        }
                                    }
                        );

    adb.setNegativeButton("No",new DialogInterface.OnClickListener()
                                    {
                                        public void onClick(DialogInterface arg0, int arg1)
                                        {
                                            arg0.dismiss();
                                        }
                                    }
                            );
    AlertDialog ad = adb.create();
    ad.show();
}

@Override
public void onDestroy()
{
    if (adView != null)
    {
        adView.destroy();
    }
    super.onDestroy();
}
}

I want the bar that is on the top(yes that black bar), on the bottom of the screen. I also wrote for it but it showed the output as the above image.

Also i dont understand that which one is the admob banner, the top one or the bottom one ?? Can anyone please explain the difference these two bars. Actually i am new to this. This is the first time i've code for admob. Please help me to learn on this.

标签: android admob
2条回答
beautiful°
2楼-- · 2019-07-11 05:53

Both are admob banner. If you wish to show ads at the bottom, then remove the following code from your Activity because you have already added the code in xml for the bottom.

adView = new AdView(this, AdSize.BANNER, "a1512f50d8c3692");
RelativeLayout layout = (RelativeLayout)findViewById(R.id.relativeLayoutHomeParent);
layout.addView(adView);
adView.loadAd(new AdRequest());
查看更多
劳资没心,怎么记你
3楼-- · 2019-07-11 06:06

Just remove this:

adView = new AdView(this, AdSize.BANNER, "a1512f50d8c3692");
RelativeLayout layout = (RelativeLayout)findViewById(R.id.relativeLayoutHomeParent);
layout.addView(adView);
adView.loadAd(new AdRequest());

You already have an adView in your xml layout.

Instead, do this:

adView = (AdView) findViewById(R.id.adView);
adView.loadAd(new AdRequest());

However, you might want to edit that AdRequest before loading the ad. That's actually optional and up to you, but your revenue will (supposedly) increase if you do it.

And, please, before copy-pasting code in SO, format it first. In Eclipse you just have to press Ctrl + Shift + F

查看更多
登录 后发表回答