sprawdzanie klasy w Android/Kotlin

0

Witam,
Android,Kotlin
zasstanawiam się czy jest możliwe wykonanie, takiego zbiegu:
mam następującą klasę MainActivity:

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
 
        val countryButton: Button = findViewById(R.id.countryButton)
        val fruitButton: Button = findViewById(R.id.fruitButton)
 
        countryButton.setOnClickListener {
            val intent = Intent(this, GameCountryActivity::class.java)
            startActivity(intent)
        }
 
        fruitButton.setOnClickListener {
            val fruitB = Intent(this,GameFruitActivity::class.java)
            startActivity(fruitB)
        }
 
 
    }
}

I posiadam następującą klasę GameManager

class GameManager {
 
 
    private var lettersUsed: String = ""
    private lateinit var underscoreWord: String
    private lateinit var wordToGuess: String
    private val maxTries = 7
    private var currentTries = 0
    private var drawable: Int = R.drawable.game0
 
    fun startNewGame(): GameState {
        
        lettersUsed = ""
        currentTries = 0
        drawable = R.drawable.game7
        if() // tutaj warunek który ma sprawdzać która klasaActivity jest wybrana
        {
            val randomIndex = Random.nextInt(0, SlowaKraje.words.size)
            wordToGuess = SlowaKraje.words[randomIndex]
        }
else {
 val randomIndex = Random.nextInt(0, SlowaOwoce.words.size)
            wordToGuess = SlowaOwoce.words[randomIndex]
}
        generateUnderscores(wordToGuess)
        return getGameState()
    }

SlowaKraje i SlowaOwoce -> klasa object

I chce w tej klasie w miejcu gdzie jest warunek if sprawdzić, który z przycisków w klasie MainActivity został wciśnięty, aby można było wykonać ten waruenk w takim wyglądzie jak jest prezentowany. Oraz czy idzie zrobić tak, aby więcej niż dwia takie warunki można zrobić.

1

Hej, może nie do końca odpowiem na Twoje pytanie, ale ja bym się starał przerobić klasę GameManager tak, żeby injectować ustawienia gry przez konstruktor.

class GameManager(
    private val gameSettings: GameSettings
) {

}

data class GameSettings(
    val words: List<String>,
    val maxTries: Int
)

Wtedy if w GameManager nie będzie potrzebny. Ewentualnie jak bardzo zależy Ci na tym ifie to zamiast "val words: List<String>" mógłbyś tam wstawić "val gameMode: GameMode" (sealed class lub enum z opcjami Fruit i Countries)

1 użytkowników online, w tym zalogowanych: 0, gości: 1