If I should change it from card to maybe a button for easier code please let me know, but I have tried multiple ways with card view and none seem to be working for me. Im trying to open a new activity when i click the cardview for DashboardTmsActivity.
current error is this
MainActivity.kt
Modifier 'override' is not applicable to 'local function':19
Unresolved reference: activity
Unresolved reference: activity:23
here is my current code.
MainActivity.kt
package com.cameron.armymaintenance
import android.content.Intent
import android.os.Bundle
import android.view.View
import androidx.cardview.widget.CardView
import com.cameron.armymaintenance.databinding.ActivityDashboardTmsBinding
import com.cameron.armymaintenance.databinding.ActivityMainBinding
class MainActivity : DrawerBaseActivity() {
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
view.findViewById<CardView>(R.id.card1).setOnClickListener {
val card1 = Intent(activity, ActivityDashboardTmsBinding::class.java)
activity?.startActivity(card1)
}
}
}
}
DrawerBaseActivity.kt
package com.cameron.armymaintenance
import android.os.Bundle
import android.view.MenuItem
import android.view.View
import android.widget.FrameLayout
import androidx.appcompat.app.ActionBarDrawerToggle
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.Toolbar
import androidx.drawerlayout.widget.DrawerLayout
import com.google.android.material.navigation.NavigationView
open class DrawerBaseActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelectedListener {
var drawerLayout: DrawerLayout? = null
override fun setContentView(view: View?) {
drawerLayout = layoutInflater.inflate(R.layout.activity_drawer_base, null) as DrawerLayout
val container = drawerLayout!!.findViewById<FrameLayout>(R.id.activityContainer)
container.addView(view)
super.setContentView(drawerLayout)
val toolbar = drawerLayout!!.findViewById<Toolbar>(R.id.toolBar)
setSupportActionBar(toolbar)
val navigationView = drawerLayout!!.findViewById<NavigationView>(R.id.nav_view)
navigationView.setNavigationItemSelectedListener(this)
val toggle = ActionBarDrawerToggle(
this,
drawerLayout,
toolbar,
R.string.menu_drawer_open,
R.string.menu_drawer_open
)
drawerLayout!!.addDrawerListener(toggle)
toggle.syncState()
}
override fun onNavigationItemSelected(item: MenuItem): Boolean {
return false
}
private fun allocateActivityTitle(titleString: String?) {
if (supportActionBar != null) {
supportActionBar!!.title = titleString
}
}
open fun onViewCreated(view: View, savedInstanceState: Bundle?) {}
}
DashboardTmsActivity.kt
package com.cameron.armymaintenance
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
class DashboardTmsActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_dashboard_tms)
}
}
So there should be 2 errors if I have not misinterpreted:
onViewCreated()should not be placed insideonCreate(). If you need to implementonViewCreated(), it should be at the same level withonCreate()activityis not available in anActivity. It only exists in aFragmentclass. You can simply usethisin anActivity.