Skocz do zawartości
haredzak

[Kotlin] Zapamiętanie wprowadzonych zmiennych (jak editText) i wstawienie ich do nowego activity

    Rekomendowane odpowiedzi

    Napisano (edytowane)

    Hej,

    Chcę zadawać pytania użytkownikowi aplikacji i po ich skończeniu podsumować je w ostatniej activity lub na tej samej activity w zależności od tego jak mi bedzie pasować. Problem w tym , że w samym kotlinie potrafię to zrobić a jedyne co znam w Androidzie to textWatcher. Czy jest jakis odpowiednik readLine() w Kotlinie dla androida? 

    Chicałbym aby wyglądało to tak: 

    fun main(args: Array<String>) {
    
        var Math_mark: Int = 0
        var Biology_mark: Int = 0
        var school_subject: String = ""
    
        println("Choose school subject: math or biology")
        school_subject = readLine()!!.toString().toUpperCase()
        if (school_subject == "MATH") {
               println("Choose your last exam mark: ")
            Math_mark = readLine()!!.toInt()
    
        }
    if (school_subject == "BIOLOGY"){
        println("Choose your last exam mark: ")
        Biology_mark = readLine()!!.toInt()
    }
    
        println("Your results:")
        if (Math_mark > 2) {
        println("Good boi")
        }
        else{
            println("Bad boi")
        }
        if (Biology_mark > 2){
            println("Good boi")
        }
        else{
            println("Bad boi")
        }
    
    }
    
    

    Natomiast w android studio wstawiłbym do onTextChanged textView.setText(editText.getText().toString())

    editTextSample.addTextChangedListener(object : TextWatcher {
     
        override fun afterTextChanged(s: Editable) {}
     
        override fun beforeTextChanged(s: CharSequence, start: Int,
                                       count: Int, after: Int) {
        }
     
        override fun onTextChanged(s: CharSequence, start: Int,
                                   before: Int, count: Int) {
          textView.setText(editText.getText().toString()) // text który bedzie sie wyswietlał
        }
    }

    Czy tylko takie rozwiązanie wydaje się być poprawne czy można łatwiej? jeśli pytań będzie 30 to musze 30 razy wklejać ten fragment kodu? Niby to tylko wprowadzenie zmiennych w innym miejscu w activity.. myślałem, żeby po prostu w podsumowaniu podać id editText, żeby to co wprowadziłem w pytaniu wyswietliło sięw podsumowaniu na końcu kodu  ale to nie przechodzi :P Chciałbym również aby user wprowadzający stringa w editText dostawał odpowiedz (jako activity podsumuwujące) string typu: tu juz chyba textWacher nie da rady..

    var pytanie: String =""
    
    println("co chcesz dziś robić?")
    pytanie = readLine()!!.toString().toUpperCase()
    
    
    
    
    
    // podsumowanie
    
    if(pytanie == "grać na komputerze") {
    println("Musisz najpierw odrobić zadanie")
    }

    Pozdrawiam 

    Edytowane przez haredzak
    Dopisanie treści

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    mmaciejow

    @haredzak w Androidzie nie korzystamy z println :) 

    Najlepiej zrobić to za pomocą jednej aktywności  Dajesz pierwsze pytanie, user odpowiada i wciska przycisk next, przycisk podmienia pytanie, dalej user odpowiada i wciska przycisk next, guzik podmienia tekst itd. Wyniki zapisujesz do tablicy i na końcu wyświetlasz je. 

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Super pomysł. Dzięki bardzo!

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

    Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

    Zarejestruj nowe konto

    Załóż nowe konto. To bardzo proste!

    Zarejestruj się

    Zaloguj się

    Posiadasz już konto? Zaloguj się poniżej.

    Zaloguj się

    • Ostatnio przeglądający   0 użytkowników

      Brak zarejestrowanych użytkowników przeglądających tę stronę.

    x