Как сделать баннеры объявления (admob), общие для всех моих действий - PullRequest
4 голосов
/ 09 марта 2012

У меня есть около трех действий, и все эти три действия имеют рекламные баннеры внизу, которые задаются кодом в методе OnCreate() Трех действий.

И по какой-то причине мне нужно завершить каждое действие при переходе от одного занятия к другому и startActivity() для возврата к первому занятию.

Я хотел бы знать, как мне сделать только одну Баннерную рекламу для всех этих трех Активов вместо того, чтобы вызывать их по отдельности из разных onCreate, потому что я сомневаюсь, что при переходе из Активностей я обновляю Объявления (тихо), которые плохая практика для ваших кликов.

Должен ли я объявить его в статическом классе, чтобы его можно было вызывать из любого действия, и там был бы только один экземпляр (поэтому не требуется обновление из-за создания действия)

Предложения приветствуются.

Ответы [ 3 ]

2 голосов
/ 09 марта 2012

Знаете ли вы о реализации ViewStub?

Для вашей проблемы ViewStub используется для размещения объявлений AdMob на Нижний колонтитул , вам просто нужно создать макет для этого нижнего колонтитула, а затем включить этот макет в макеты XML (макеты действий), используя пример ViewStub.

Вот пример для реализации ViewStub, да, это для строки заголовка, но вы можете взять из нее концепцию.

Теперь, чтобы оптимизировать решение (код), вы можете создать класс Abstract и расширить класс Activity и включить в него свой рекламный код AdMob.

Например:

public abstract class BaseActivity extends Activity
{
   /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

        public void setFooterAds()
        {
              // Make ViewStub visible
              // include your Ads code
        }
}

Теперь, , вам просто нужно расширить этот класс BaseActivity в ваших классах Activity и вызвать метод setFooterAds () для отображения рекламы AdMob.

1 голос
/ 28 января 2016

Я думаю, что единственным выходом здесь является использование одного действия и нескольких фрагментов .. у действия будет макет фрейма и фрагмент, содержащий рекламу. Пока различные экраны (фрагменты) будут заменены в зависимости от UX, рекламы-содержащий фрагмент останется как есть, общим для всех экранов!

1 голос
/ 09 марта 2012

Вы можете поместить код, подобный этому, в свой основной вид деятельности, чтобы рекламный баннер отображался во всех трех действиях.

import com.google.ads.*; 

public class testActivity extends Activity { 
private static final String MY_AD_UNIT_ID = "yourId"; 
private AdView adView; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    super.loadUrl("file:///android_asset/www/index.html");          
    // Create the adView 
    adView = new AdView(this, AdSize.BANNER, MY_AD_UNIT_ID); 
    LinearLayout layout = super.root; // this is the only change 
    layout.addView(adView); 
    adView.loadAd(new AdRequest());

XML-файл:

<com.admob.android.ads.AdView
      android:id="@+id/ad"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      xmlns:backgroundColor="#000000"
      xmlns:primaryTextColor="#ffffff"
      xmlns:secondaryTextColor="#cccccc"
...