Toggle hidden & visable text on button click - Kotlin Android Studio

zveuse

I'm new to learning Kotlin and android studio and want to achieve a button that toggles text back and forth when clicked on.

For example, when I click the button for the first time my textView display is true. When I click it again it is invisible and after that visible etc.

A simple toggle button for my textView.

I don't know if I need a loop or how I will proceed by disableing the element on every second click.

MainActivity.kt

   btn_click_me.setOnClickListener {

        textViewToggle.text = "Showing text"

    }

activity_main.xml

<Button
    android:id="@+id/btn_click_me"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="42dp"
    android:layout_marginBottom="7dp"
    android:text="@string/visa_g_m_texten"
    app:layout_constraintBottom_toTopOf="@+id/textViewToggle"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    tools:ignore="UsingOnClickInXml" />


<TextView
    android:id="@+id/textViewToggle"
    android:layout_width="355dp"
    android:layout_height="0dp"
    android:layout_marginBottom="480dp"
    android:text="@string/denna_text_kommer_togglas_p_och_av_m_r_man_klickar_p_knappen_ovanf_r"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent" />

Every answer is very much appreciated!

// Max

Mustafa Ahmed

You can try this:

1- Declare a Boolean variable, to save the state of the click:

var boolean = true

2- Inside button.setOnClickListener add:

boolean = !boolean 

this line will change the Boolean value in each click. (The symbol "!" means "inverse", so if "boolean" was true, then "!boolean" is false).

3- Add your if statement, for example:

if (boolean) { // means: if the value is true
    textView.text = "true"
} else {
    textView.text = "false"
}

Your final code would be like:

button.setOnClickListener {
    boolean = !boolean // inverse the value when this button is clicked
    if (boolean) {
        textView.text = "true"
    } else {
        textView.text = "false"
    }
}

And if you want to change only the visibility of the text, just write this:

var boolean = true

button.setOnClickListener {
    boolean = !boolean
    textView.isVisible = boolean
}

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

TOP Ranking

  1. 1

    Failed to listen on localhost:8000 (reason: Cannot assign requested address)

  2. 2

    Loopback Error: connect ECONNREFUSED 127.0.0.1:3306 (MAMP)

  3. 3

    How to import an asset in swift using Bundle.main.path() in a react-native native module

  4. 4

    pump.io port in URL

  5. 5

    Compiler error CS0246 (type or namespace not found) on using Ninject in ASP.NET vNext

  6. 6

    BigQuery - concatenate ignoring NULL

  7. 7

    ngClass error (Can't bind ngClass since it isn't a known property of div) in Angular 11.0.3

  8. 8

    ggplotly no applicable method for 'plotly_build' applied to an object of class "NULL" if statements

  9. 9

    Spring Boot JPA PostgreSQL Web App - Internal Authentication Error

  10. 10

    How to remove the extra space from right in a webview?

  11. 11

    java.lang.NullPointerException: Cannot read the array length because "<local3>" is null

  12. 12

    Jquery different data trapped from direct mousedown event and simulation via $(this).trigger('mousedown');

  13. 13

    flutter: dropdown item programmatically unselect problem

  14. 14

    How to use merge windows unallocated space into Ubuntu using GParted?

  15. 15

    Change dd-mm-yyyy date format of dataframe date column to yyyy-mm-dd

  16. 16

    Nuget add packages gives access denied errors

  17. 17

    Svchost high CPU from Microsoft.BingWeather app errors

  18. 18

    Can't pre-populate phone number and message body in SMS link on iPhones when SMS app is not running in the background

  19. 19

    12.04.3--- Dconf Editor won't show com>canonical>unity option

  20. 20

    Any way to remove trailing whitespace *FOR EDITED* lines in Eclipse [for Java]?

  21. 21

    maven-jaxb2-plugin cannot generate classes due to two declarations cause a collision in ObjectFactory class

HotTag

Archive