Я занимаюсь разработкой игры в Котлине. Моя цель состоит в том, чтобы каждый раз, когда пользователь нажимал определенную кнопку, он добавлял 20 монет к своим существующим монетам. После этого номер монеты следует сохранить с общими настройками.
Общие настройки:
val sharedPreferences = getSharedPreferences("SP_INFO", Context.MODE_PRIVATE)
val editor = sharedPreferences.edit()
var coins = preferenceFile.getInt("COINS", 0)
Вот схема текстового представления, в которой отображается номер монеты:
//Coin Label
<TextView android:id="@+id/coinlabel"
android:layout_width="150dp"
android:layout_height="60dp"
android:textSize="40sp"
android:textColor="@color/coinlabel"
android:textAlignment="textStart"
android:layout_marginTop="20dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
/>
Я пытался добавить 20 монет к существующим монетам, но это не сработало так, как я хотел.
var coins = Int
button.setOnClickListener {
coins = 20 + coins //The plus symbol may be used wrong here
editor.putInt("COINS",coins)
editor.apply() //Here I want to save the coins number to shared-preferences
coinlabel.setText(Integer.toString(coins))
println(coins)
}
Весь класс:
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.view.WindowManager
import kotlinx.android.synthetic.main.activity_main.*
import android.animation.ObjectAnimator
import android.animation.AnimatorSet
import android.content.Intent
import android.net.Uri
import android.view.MotionEvent
import android.content.Context
import android.media.MediaPlayer
class MainActivity : AppCompatActivity() {
val sharedPreferences = getSharedPreferences("SP_INFO", Context.MODE_PRIVATE)
val editor = sharedPreferences.edit()
var coins = sharedPreferences.getInt("COINS", 0)
var pressed: Boolean? = false
var audioon = true
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
supportActionBar?.hide()
this.getWindow()
.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN)
soundon.setOnClickListener{
audioon = false
editor.putBoolean("AUDIOON", audioon)
editor.apply()
}
soundoff.setOnClickListener {
audioon = true
editor.putBoolean("AUDIOON", audioon)
editor.apply()
}
button.setOnClickListener {
coins += 20
coinlabel.setText(Integer.toString(coins))
editor.putInt("COINS",coins)
editor.apply()
println(coins)
}
}
}