In the activity_main.xml, we have added a FloatingActionButton, which we will use to go to NewUserActivity. To 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.