Как сделать прослушивание клика на кнопку?
Как сделать прослушивание клика на кнопку? Причем это не обычная кнопка, а тулбар нижний
Есть справа внизу три кнопки : Home, DashBoard, Notification.
Хочу чтобы при клике на Home или Item 1 (кнопку внизу) - менялся сайт на другой в WebView. Как вызвать смену юрл адреса в WebView я знаю как сделать. А как сделать прослушивние кнопки? нажатие на тулбар?
Пытаюсь написать обработчик собитий при нажатии на ДашБорд кнопку чтобы в WebView открывался другой сайт.
Сделал по инструкции только ругается при выполнении кода внутри обработчика.
Слудеющий код не глючит, но и при колике на item1 (на кнопку) ничего не просиходит не меняется содежимое в ВебВью
NavigationBarView.OnItemSelectedListener { item ->
when(item.itemId) {
R.id.item_1 -> {
// Respond to navigation item 1 click
val myWebView: WebView = binding.WebView
myWebView.loadUrl("https://ya.ru")
myWebView.settings.javaScriptEnabled = true
true
}
R.id.item_2 -> {
// Respond to navigation item 2 click
true
}
else -> false
}
}
Если же использую приведенный Евгением onNavigationItemSelected , то вот при таком коде ошибка
val public static interface NavigationBarView.OnItemSelectedListener
{
navView.onNavigationItemSelected(Item1){ val myWebView: WebView = binding.WebView
myWebView.loadUrl("https://ya.ru")
myWebView.settings.javaScriptEnabled = true
true }
}
Он светит красным onNavigationItemSelected
Таким образом при нижеприведенном коде у меня открывается сайт e1.ru Но при клике по кнопкам - не открывается сайт ya.ru в WebView Вообще ни один обработчик ни одной кнопки не срабатывает:
package com.example.spektr
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.webkit.WebView
import android.webkit.WebViewClient
import androidx.appcompat.app.AppCompatActivity
import androidx.navigation.findNavController
import androidx.navigation.ui.AppBarConfiguration
import androidx.navigation.ui.setupActionBarWithNavController
import androidx.navigation.ui.setupWithNavController
import com.example.spektr.databinding.ActivityMainBinding
import com.google.android.material.bottomnavigation.BottomNavigationView
import com.google.android.material.navigation.NavigationBarView
private class MyWebViewClient : WebViewClient() {
private class MyWebViewClient : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean {
if (Uri.parse(url).host == "www.example.com") {
// This is your website, so don't override. Let your WebView load
// the page.
return false
}
// Otherwise, the link isn't for a page on your site, so launch another
// Activity that handles URLs.
Intent(Intent.ACTION_VIEW, Uri.parse(url)).apply {
startActivity(this)
}
return true
}
}
}
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
//super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
val navView: BottomNavigationView = binding.navView
//val public static interface NavigationBarView.OnItemSelectedListener
// {
// navView.onNavigationItemSelected(Item1){ val myWebView: WebView = binding.WebView
// myWebView.loadUrl("https://ya.ru")
// myWebView.settings.javaScriptEnabled = true
// true }
// }
val navController = findNavController(R.id.nav_host_fragment_activity_main)
// Passing each menu ID as a set of Ids because each
// menu should be considered as top level destinations.
val appBarConfiguration = AppBarConfiguration(
setOf(
R.id.navigation_home, R.id.navigation_dashboard, R.id.navigation_notifications
)
)
setupActionBarWithNavController(navController, appBarConfiguration)
navView.setupWithNavController(navController)
val myWebView: WebView = binding.WebView
myWebView.loadUrl("https://e1.ru")
myWebView.settings.javaScriptEnabled = true
myWebView.webViewClient = MyWebViewClient()
NavigationBarView.OnItemSelectedListener { item ->
when(item.itemId) {
R.id.item_1 -> {
// Respond to navigation item 1 click
val myWebView: WebView = binding.WebView
myWebView.loadUrl("https://ya.ru")
myWebView.settings.javaScriptEnabled = true
myWebView.webViewClient = MyWebViewClient()
true
}
R.id.navigation_dashboard -> {
// Respond to navigation item 2 click
val myWebView: WebView = binding.WebView
myWebView.loadUrl("https://ya.ru")
myWebView.settings.javaScriptEnabled = true
myWebView.webViewClient = MyWebViewClient()
true
}
else -> false
}
}
//navView.setOnNavigationItemSelectedListener(HomeViewModel)
// navView.setOnItemSelectedListener(HomeViewModel) {
// val myWebView: WebView = binding.WebView
// myWebView.loadUrl("https://spektr-ekb.ru/")
// }
// val myWebView: WebView = binding.WebView
// myWebView.loadUrl("https://spektr-ekb.ru")
// myWebView.settings.javaScriptEnabled = true
//myWebView.settings.setW
// myWebView.webViewClient
// val myWebView: WebView = binding.WebView
// myWebView.webViewClient = MyWebViewClient()
}
}
private fun Intent.startActivity(intent: Intent) {
}