Obsluga Radio Buttonow

Odpowiedz Nowy wątek
2018-02-13 17:55
0

Jeżeli mam 5 radiobuttonow, ktore obsługą wyświetlanie daty w różnych formatach, i dwa przyciski do zmiany daty.
Czy jest możliwe, żeby po zmienieniu daty przyciskiem, wyświetlała się zmieniona data bez ponownego wybierania radiobuttona? Obecnie jak wciskam przycisk zmiany daty to muszę później naciskać na jeden z RadioButtonow aby data w TextView się zmieniła.


Pozostało 580 znaków

2018-02-13 18:01
0

Wszystko sie da ale musisz pokazać jakiś kod.

Pozostało 580 znaków

2018-02-13 18:11
0

Funkcja do wyświetlania formatu:

 
    fun formatDate(format: Int): String {
        if (format > 5 || format < 1)
            throw FormatException()
        when (format) {
            1 -> return if (this.day < 10)
                "0" + this.day + "." + this.month.number + "." + this.year
            else
                this.day.toString() + "." + this.month.number + "." + this.year
            2 -> return Days.dayOfWeek(this.day, this.month.number, this.year) + "," + this.day + " " + this.month.name + " " + this.year
            3 -> return this.day.toString() + " " + Months.getRoman(this.month.number) + " " + this.year
            4 -> return this.day.toString() + " " + this.month.name + " " + this.year
            5 -> return if (this.day < 10)
                this.year.toString() + "-" + this.month.number + "-0" + this.day
            else
                this.year.toString() + "-" + this.month.number + "-" + this.day
            else -> throw RuntimeException()
        }
    }

Funkcja zmieniajca date, np o tydzien w tył:

 fun previousWeek() {
        if ((this.day - 7) >= 1) {
            this.day -= 7
        } else {
            if (this.month.number != 1) {
                this.month.number -= 1
            } else {
                this.year -= 1
                this.month = Months.getMonths(12)
            }
            this.day -= (7 - this.month.days)
        }
    }

klasa MainActivity

class MainActivity : AppCompatActivity() {
    var date : Date = Date()
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }
 
    fun show(v : View) {
        prevButton.isEnabled = true
        nextButton.isEnabled = true
        defButton.isEnabled = true
        fullButton.isEnabled = true
        monthButton.isEnabled = true
        isoButton.isEnabled = true
        romanButton.isEnabled = true
        var day : Int = dayText.text.toString().toInt()
        var month : Int = monthText.text.toString().toInt()
        var year : Int = yearText.text.toString().toInt()
        date = Date(day, month, year)
 
    }
 
    fun nextWeek(v : View) {
        date.nextWeek()
    }
    fun previousWeek(v : View) {
        date.previousWeek()
    }
 
    fun format(v : View) {
        if (defButton.isChecked) {
            dateView.text = date.formatDate(1)
        }
        if (monthButton.isChecked) {
            dateView.text = date.formatDate(4)
        }
 
        if (isoButton.isChecked) {
            dateView.text = date.formatDate(5)
        }
 
        if (fullButton.isChecked) {
            dateView.text = date.formatDate(2)
        }
 
        if (romanButton.isChecked) {
            dateView.text = date.formatDate(3)
        }
    }
 
}

edytowany 2x, ostatnio: Tenonymous, 2018-02-13 18:30

Pozostało 580 znaków

2018-02-13 21:44
Ponton
1

po kliknieciu np. w previousWeek zmieniasz date ale nie aktualizujesz widoku. dodaj jakis updateDateView() i tak pobierz aktualny format i wpisz go do pola textView.

albo zmodyfikuj swoja metode format tak zeby nie braka argumentu view (bo i tak go nie uzywasz) i wykonaj ja zaraz po previousWeek i nextWeek

Pozostało 580 znaków

2018-02-13 21:46
Ponton

    fun nextWeek(v : View) {
        date.nextWeek()
        format()
    }
    fun previousWeek(v : View) {
        date.previousWeek()
       format()
    }

ale ja bym to nazwal inaczej niz format, cos jak updateDateView()

Pozostało 580 znaków

2018-02-13 21:59
0

Dziękuję : ) niepotrzebnie kombinowałem z robieniem z funkcji format zdarzenia


Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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

Robot: CCBot