I've been trying to get these two to work but no matter how I rearrange the code, there is always something complaining: either a var that has not been initialized or a fun.
This are the offending snippet:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
var sp : SharedPreferences = this.getSharedPreferences("com.example.downloadtest",0 )
fun storeUnits(unit:String){
sp.edit().putString("units", unit).apply()
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
super.onOptionsItemSelected(item)
if (item.itemId == R.id.settings){
//toast("Settings clicked")
alert("Choose Units") {
title = "Units"
positiveButton("Imperial") {
toast("Imperial Measurements Chosen")
storeUnits("imperial")
}
negativeButton("Metric") {
toast("Metric Measurements Chosen")
storeUnits("metric")
}
The var 'sp' needs to be where it's at (right?). The fun 'store units' is also placed ok. However, I cannot place the 'override fun onOptionsItemSelected' inside another override function; but if I place it outside it doesn't work with the other two. Please help..
Both onOptionsItemSelected method and your storeUnits method should be outside of the onCreate method. You can instead make sp a global variable:
Declared this as a global variable before your onCreate method(inside the activity class but outside onCreate):
lateinit var sp : SharedPreferences
Then initialize it inside onCreate method:
sp = this.getSharedPreferences("com.example.downloadtest",0 )