Switching another activity

In the activity_main.xml, we have added a FloatingActionButton, which we will use to go to NewUserActivityTo complete this task, use the following code in the onCreate() with the mentioned request code:

fab.setOnClickListener {
val intent = Intent(this@MainActivity, NewUserActivity::class.java)
startActivityForResult(intent, requestCode)

/*Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show()*/
}

So, here is the complete code of MainAcivity.kt:

class MainActivity : AppCompatActivity() {

private val requestCode: Int = 1

private lateinit var mMainViewModel: MainViewModel

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setSupportActionBar(toolbar)

val userListAdapter = UserListAdapter(this)
recyclerview.adapter = userListAdapter
recyclerview.layoutManager = LinearLayoutManager(this)

mMainViewModel = ViewModelProviders.of(this).get(MainViewModel::class.java)
mMainViewModel.getAllUsers().observe(this,
Observer {
userList -> userListAdapter.setNewUser(userList!!)
})


fab.setOnClickListener {
val intent = Intent(this@MainActivity, NewUserActivity::class.java)
startActivityForResult(intent, requestCode)
}
}

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == this.requestCode && resultCode == Activity.RESULT_OK){
data?.let {
val users: Users = it.getParcelableExtra(getString(R.string.result_replay)) as Users
mMainViewModel.insert(users)
}
}
}
}

Now that we have completed the project, run the application. We will explore this in the next section.