2

How can I convert the following code from Java to Kotlin?

Boolean mBoolean = false
view.setVisibility(mBoolean ? View.VISIBLE : View.GONE);
Nicola Gallazzi
  • 7,897
  • 6
  • 45
  • 64
petrrr33
  • 583
  • 9
  • 24

3 Answers3

13
val mBoolean = false
view.visibility = if(mBoolean) View.VISIBLE else View.GONE

However I doubt it makes any sense to make mBoolean immutable here, so instead of val mBoolean I'd go with var mBoolean.

A.Bitner
  • 191
  • 1
  • 5
  • `var` would be the correct translation since `mBoolean` isn't `final` in the Java code. – Michael Feb 20 '19 at 14:48
  • 1
    It is always better to use `val` in Kotlin. For example, there are some features, like smart cases that would work with `val` and not with `var` declarations – Eugene Petrenko Feb 20 '19 at 15:09
0

You can epannd on view.visibility = if(mBoolean) View.VISIBLE else View.GONE by creating extension function

fun View.makeVisible(show:Boolean){
    this.visibilility = if(show) View.VISIBLE else View.GONE   
}


var mBolean = false
view.makeVisible(mBoolean)
svkaka
  • 3,942
  • 2
  • 31
  • 55
0

You can also use when operator:

 val mBoolean = false
        view.visibility = when (mBoolean) {
            true -> View.VISIBLE
            false -> View.GONE
        }
Nicola Gallazzi
  • 7,897
  • 6
  • 45
  • 64