Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android Studio(Kotlin)中设置增量和减量的限制_Android_Kotlin_Increment_Decrement - Fatal编程技术网

在Android Studio(Kotlin)中设置增量和减量的限制

在Android Studio(Kotlin)中设置增量和减量的限制,android,kotlin,increment,decrement,Android,Kotlin,Increment,Decrement,因此,我在一个页面应用程序上有两组递增和递减按钮。我想将递减设置为0,递增设置为10。我尝试了许多不同的“if”语句,一个与decrease_1.setOnClickListener结合,另一个与fun increaseInteger1()结合,但都不起作用。我做错了什么 class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCrea

因此,我在一个页面应用程序上有两组递增和递减按钮。我想将递减设置为0,递增设置为10。我尝试了许多不同的“if”语句,一个与decrease_1.setOnClickListener结合,另一个与fun increaseInteger1()结合,但都不起作用。我做错了什么

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    increase_1.setOnClickListener { increaseInteger1() }
    decrease_1.setOnClickListener { decreaseInteger1()
        if(integer_number_1.text.length < 0) {
            integer_number_1.text.length === 0
        }
    }



    increase_2.setOnClickListener { increaseInteger2() }
    decrease_2.setOnClickListener { decreaseInteger2() }


}

fun increaseInteger1() {
    display_number_1(integer_number_1.text.toString().toInt() + 1)

    /*val stringNumber = integer_number_1.text.toString()
    val intNumber = stringNumber.toInt()
    val increasedNumber = intNumber + 1

    if(increasedNumber < 0) { display_number_1(0) }
    else if (increasedNumber > 10) {display_number_1(10)} }*/
}

fun decreaseInteger1() {
    display_number_1(integer_number_1.text.toString().toInt() - 1)



}


fun increaseInteger2() {
    display_number_2(integer_number_2.text.toString().toInt() + 1)
}

fun decreaseInteger2() {
    display_number_2(integer_number_2.text.toString().toInt() - 1)
}



private fun display_number_1(number: Int) {
    integer_number_1.setText("$number")
}

private fun display_number_2(number: Int) {
    integer_number_2.setText("$number")
}

} 
class MainActivity:AppCompatActivity(){
重写创建时的乐趣(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
增加_1.setOnClickListener{increaseInteger1()}
Decrease1.setOnClickListener{decreaseInteger1()
if(整数\数字\ 1.text.length<0){
整数\u编号\u 1.text.length==0
}
}
增加_2.setOnClickListener{increaseInteger2()}
decrease_2.setOnClickListener{decreaseInteger2()}
}
乐趣递增整数1(){
显示数字1(整数数字1.text.toString().toInt()+1)
/*val stringNumber=integer\u number\u 1.text.toString()
val intNumber=stringNumber.toInt()
val increasedNumber=intNumber+1
if(increasedNumber<0){display_number_1(0)}
else如果(increasedNumber>10){display_number_1(10)}*/
}
乐趣递减整数1(){
显示\u编号\u 1(整数\u编号\u 1.text.toString().toInt()-1)
}
乐趣递增整数2(){
显示\u编号\u 2(整数\u编号\u 2.text.toString().toInt()+1)
}
fun decreaseInteger2(){
显示\u编号\u 2(整数\u编号\u 2.text.toString().toInt()-1)
}
私人游乐设施编号1(编号:Int){
整数\编号\ 1.setText($number)
}
私人娱乐节目展示号2(编号:Int){
整数\编号\ 2.setText($number)
}
} 
XML:


=
是标识相等运算符。您应该使用赋值运算符
=
,来更改值

使用TextView中的字符串作为存储整数值的方法非常笨拙。使用属性作为值会更干净。(在更复杂的情况下,可以将该值放入ViewModel的LiveData中。)

可以使用强制函数来限制值

将其包装在一起:

private var integer1 = 0
private var integer2 = 0

fun increaseInteger1() {
    integer1 = (integer1 + 1).coerceAtMost(10)
    display_number_1(integer1)
}

fun decreaseInteger1() {
    integer1 = (integer1 - 1).coerceAtLeast(0)
    display_number_1(integer1)
}

//...
也可以使用最小/最大值代替强制函数:

integer1 = min(10, integer1 + 1) // increment
integer1 = max(0, integer1 - 1) // decrement
或者,您可以为属性提供一个自定义设置器,强制它们保持在所需的限制范围内:

private var integer1: Int = 0
    set(value) { field = value.coerceIn(0..10) }
private var integer2: Int = 0
    set(value) { field = value.coerceIn(0..10) }

//...
fun increaseInteger1() {
    display_number_1(++integer1)
}

fun decreaseInteger1() {
    display_number_1(--integer1)
}
private var integer1: Int = 0
    set(value) { field = value.coerceIn(0..10) }
private var integer2: Int = 0
    set(value) { field = value.coerceIn(0..10) }

//...
fun increaseInteger1() {
    display_number_1(++integer1)
}

fun decreaseInteger1() {
    display_number_1(--integer1)
}