Как добавить AdMob в активность? - PullRequest
0 голосов
/ 12 февраля 2019

Я делаю новое приложение.Все закончено, но мне все еще нужно внедрить баннер Admob в нижней части моего приложения.Я никогда не делал этого раньше, поэтому я хотел спросить, может ли кто-нибудь мне помочь?

Я уже пробовал кое-что в учебниках на Youtube, но ничего не помогло.

Вот пример https://i.stack.imgur.com/zIgWp.png

Вот мой код:

public class MainActivity extends AppCompatActivity {

    private ListView mListNotes;

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

        mListNotes = (ListView) findViewById(R.id.main_listview);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main_activity, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        switch (item.getItemId()) {
            case R.id.action_create: //run NoteActivity in new note mode
                startActivity(new Intent(this, NoteActivity.class));
                break;
        }

        return super.onOptionsItemSelected(item);
    }

    @Override
    protected void onResume() {
        super.onResume();

        //load saved notes into the listview
        //first, reset the listview
        mListNotes.setAdapter(null);
        ArrayList<Note> notes = Utilities.getAllSavedNotes(getApplicationContext());

        //sort notes from new to old
        Collections.sort(notes, new Comparator<Note>() {
            @Override
            public int compare(Note lhs, Note rhs) {
                if(lhs.getDateTime() < rhs.getDateTime()) {
                    return -1;
                } else {
                    return 1;
                }
            }
        });

        if(notes != null && notes.size() > 0) { //check if we have any notes!
            final NoteAdapter na = new NoteAdapter(this, R.layout.view_note_item, notes);
            mListNotes.setAdapter(na);

            //set click listener for items in the list, by clicking each item the note should be loaded into NoteActivity
            mListNotes.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    //run the NoteActivity in view/edit mode
                    String fileName = ((Note) mListNotes.getItemAtPosition(position)).getDateTime()
                            + Utilities.FILE_EXTENSION;
                    Intent viewNoteIntent = new Intent(getApplicationContext(), NoteActivity.class);
                    viewNoteIntent.putExtra(Utilities.EXTRAS_NOTE_FILENAME, fileName);
                    startActivity(viewNoteIntent);
                }
            });
        } else { //remind user that we have no notes!
            Toast.makeText(getApplicationContext(), "No notes Found"
                    , Toast.LENGTH_SHORT).show();
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Вот простой xml код для реализации ListView и AdMob banner ниже ListView.Может быть, это будет полезно для вашей цели.

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true">
    </ListView>
</RelativeLayout>

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentBottom="true">

    <com.google.android.gms.ads.AdView xmlns:ads="http://schemas.android.com/apk/res-auto"
        android:id="@+id/adView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        ads:adSize="SMART_BANNER"
        ads:adUnitId="@string/Id" />
</RelativeLayout>

Баннер в центре списка не практичен.Это выглядело бы как нечто, покрывающее список.

0 голосов
/ 13 февраля 2019

Полагаю, под AdMob вы имели в виду рекламные баннеры?Если я вас правильно понимаю, вы хотите добавить рекламные баннеры в свои ListView, чтобы их можно было прокручивать вместе с «Заметками» в вашем списке?

Баннерные объявления показываются через AdView, что по сутиView.

Таким образом, вам нужно показать AdView вместо вашего просмотра для ваших заметок в вашем getView() методе, когда возвращаемая позиция - это позиция, предназначенная для ваших объявлений.

Это более эффективно выполняется с помощью RecyclerView, чем ListView, поскольку RecyclerView имеет встроенные реализации для отображения другого набора представлений в зависимости от их типа.

Однако я НЕ ДОЛЖЕН предупреждать вас об этом.

НЕ помещать объявления AdMob в прокручиваемый список.

Как указано в Правилах AdMob: https://support.google.com/admob/answer/6275345?hl=en&ref_topic=2745287

Кроме того, рекламные баннеры не должны перемещаться при прокрутке пользователя, поскольку пользователи могут пытаться нажимать на меню, но в итоге нажимают наобъявление случайно вместо этого.Эта конкретная реализация противоречит политике, и мы оставляем за собой право отключить показ объявлений в вашем приложении.

Рекламные баннеры AdMob не должны прокручиваться пользователем.Это приведет к очень высокому риску запрета вашему приложению получать в будущем рекламу от AdMob.

Если он достаточно серьезен, это может привести к закрытию вашей учетной записи AdMob.

Объявления в прокручиваемых списках, которые вы видите в других приложениях, скорее всего не получают свои объявления от AdMob, поэтому они не будут подвержены этому виду риска.

Если вы по-прежнему хотите размещать рекламные баннеры в своем прокручиваемом списке, но не хотите подвергаться риску быть заблокированным, тогда я предлагаю вам взглянуть на других поставщиков рекламы, кроме AdMob.Ознакомьтесь с правилами для других поставщиков рекламы и посмотрите, запрещены ли прокручиваемые объявления.Если это не так, используйте их вместо AdMob.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...