Как я могу загрузить рекламу Google во фрагмент в функции onCreate (), если я уже использую setContentView () с другим макетом в Kotlin? - PullRequest
0 голосов
/ 01 августа 2020

Есть ли способ иметь два разных вызова setContentView () в onCreate () или есть способ их разделить? Я уже использую setContentView () для загрузки панели навигации и панели инструментов, и я не знаю, как реструктурировать код, чтобы он также включал в себя рекламу.

Я новичок в разработке android, поэтому я могу быть отсутствует что-то очень тривиальное.

class MainActivity : AppCompatActivity() {

private lateinit var appBarConfiguration: AppBarConfiguration
lateinit var mAdView : AdView

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    val toolbar: Toolbar = findViewById(R.id.toolbar)
    setSupportActionBar(toolbar)

    //Initialize fab listener and SnackBar onClick
    val fab: FloatingActionButton = findViewById(R.id.fab)
    fab.setOnClickListener { view ->
        Snackbar.make(view, "Here goes Nothing!", Snackbar.LENGTH_LONG)
            .setAction("Action", null).show()
    }

    val drawerLayout: DrawerLayout = findViewById(R.id.drawer_layout)
    val navView: NavigationView = findViewById(R.id.nav_view)
    val navController = findNavController(R.id.nav_host_fragment)


    appBarConfiguration = AppBarConfiguration(setOf(
        R.id.nav_home, R.id.nav_gallery, R.id.nav_slideshow), drawerLayout)
    setupActionBarWithNavController(navController, appBarConfiguration)
    navView.setupWithNavController(navController)
    navView.setCheckedItem(R.id.nav_home)

    
    MobileAds.initialize(this) {}
    val adRequest = AdRequest.Builder().build()
    
    //this is the line where I get an error
    setContentView(R.layout.fragment_home)
    
    mAdView = findViewById(R.id.adViewHomeFragment)
    mAdView.loadAd(adRequest)
    
}
/**This creates the options menu**/
override fun onCreateOptionsMenu(menu: Menu): Boolean {
    // Inflate the menu; this adds items to the action bar if it is present.
    menuInflater.inflate(R.menu.navigation_drawer, menu)
    return true
}

override fun onSupportNavigateUp(): Boolean {
    val navController = findNavController(R.id.nav_host_fragment)

    return navController.navigateUp(appBarConfiguration) || super.onSupportNavigateUp()
}}

Если у вас есть какие-либо советы о том, что не так с этой структурой или как я могу ее улучшить, я был бы невероятно благодарен.

1 Ответ

0 голосов
/ 08 августа 2020
//this is the line where I get an error
setContentView(R.layout.fragment_home)

Нет необходимости добавлять другой макет для объявлений с номером телефона. Используйте setContentView() один раз, что вы уже сделали после вызова onCreate(). Убедитесь, что ваше объявление добавлено в файл макета xml (в данном случае activity_main.xml). Звоните из MainActivity. Проверьте это для реализации рекламы - Banner Ads

Если вы хотите размещать рекламу во фрагменте, добавьте adview в макет фрагмента и вызовите его из кода фрагмента. Предоставленный вами код не загружает фрагмент. Посмотрите этот пример о том, как загрузить фрагмент - Добавить фрагмент

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