Перейдите на веб-сайт с помощью Jetpack Navigation в меню Drawer - PullRequest
0 голосов
/ 04 марта 2020

Navigate to Website

В настоящее время я использую Jetpack Navigation, но не могу понять, как перейти к URI веб-сайта, например www.google.com при нажатии на элемент Calificar в меню.

    //Toolbar for the Drawer
    val toolbar: Toolbar = findViewById(R.id.toolbar)
    setSupportActionBar(toolbar)

    //Drawer Layout
    val drawerLayout: DrawerLayout = findViewById(R.id.drawer_layout)

    //Controller for the Navigation
    val navView: NavigationView = findViewById(R.id.nav_view)
    val navController = findNavController(R.id.nav_host_fragment)

    appBarConfiguration = AppBarConfiguration(
        setOf(
            R.id.nav_random,
            R.id.nav_baloto,
            R.id.nav_revancha,
            R.id.nav_results,
            R.id.nav_yournumbers,
            R.id.nav_about,
            R.id.nav_rate
        ), drawerLayout
    )
    setupActionBarWithNavController(navController, appBarConfiguration)
    navView.setupWithNavController(navController)
}

override fun onCreateOptionsMenu(menu: Menu): Boolean {
    menuInflater.inflate(R.menu.main, menu)
    return true
}

override fun onSupportNavigateUp(): Boolean {
    val navController = findNavController(R.id.nav_host_fragment)
    return navController.navigateUp(appBarConfiguration) || super.onSupportNavigateUp()
}

Навигация по фрагментам работает нормально, но не может понять, как перейти к действию, это будет nav_rate, который должен открыть сайт.

1 Ответ

0 голосов
/ 06 марта 2020

После использования решения OhhhThatVarun мне удалось частично выполнить задание, но именно так я и решил его, поскольку OnNavigationItemSelectedListener нарушает работу нового Jetpack Navigation

В Конструктор Я добавил это

class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelectedListener {

После этого мне нужно было создать новую функцию для OnNavigationItemSelectedListener

override fun onNavigationItemSelected(item: MenuItem): Boolean {
        val drawerLayout: DrawerLayout = findViewById(R.id.drawer_layout)
        when (item.itemId) {
            R.id.nav_rate -> {
                val rate = Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=com.companyname.balotorandom"))
                startActivity(rate)
            }
        }
        drawerLayout.closeDrawer(GravityCompat.START)
        return true
    }

И в основном изменить способ работы контроллера. Это новый код:

appBarConfiguration = AppBarConfiguration(
            setOf(
                R.id.nav_random,
                R.id.nav_baloto,
                R.id.nav_revancha,
                R.id.nav_results,
                R.id.nav_yournumbers,
                R.id.nav_about
            ), drawerLayout
        )
        setupActionBarWithNavController(navController, appBarConfiguration)
        NavigationUI.setupWithNavController(toolbar, navController, appBarConfiguration)
        navView.setNavigationItemSelectedListener(this)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...