如何禁用Android Kotlin中的点按钮
我是新的Android Studio – Kotlin,我用数字和数学运算符与小数点(.dot按钮)构建一个应用程序在我的数学计算器应用程序,如果按下点按钮,该按钮应该禁用或不输入第二时间。 如果按下多次,我想禁用或停止打印点按钮(。)。
这是我的代码
Acitivity.kt文件
package com.tripbegins.calculator import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.view.View import android.widget.Button import com.tripbegins.calculator.R.id.* import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } var emptyText = true fun numberEvents(view: View) { var checkButton:Boolean = false if(emptyText){ viewResult.setText("") } emptyText = false var button = view as Button var isClicked = viewResult.text.toString() when (button.id) { buttonOne.id -> isClicked += "1" buttonTwo.id -> isClicked += "2" buttonThree.id -> isClicked += "3" dotButton.id-> isClicked+="." } viewResult.setText(isClicked) } var operation ="+" var oldValues:String? = null fun mathOperation(view: View){ var mathButton = view as Button var isClicked = viewResult.text.toString() when(mathButton.id){ plusButton.id-> { operation = "+" } minusButton.id->{ operation="-" } mulButton.id->{ operation="*" } } oldValues = viewResult.text.toString() emptyText = true } fun Calculate(view: View){ var newValues = viewResult.text.toString() var calulateButton:Double? = null when(operation){ "+"-> { calulateButton = oldValues!!.toDouble() + newValues.toDouble() } "-"-> { calulateButton = oldValues!!.toDouble() - newValues.toDouble() } "*"-> { calulateButton = oldValues!!.toDouble() * newValues.toDouble() } } viewResult.setText(calulateButton.toString()) emptyText=true } fun clearFunction(view: View){ viewResult.setText("") } }
activity.xml文件
我期待的结果
有效输入 – > 3.(不要再次输入.dot按钮)
无效的条目 – > 3 …(目前我可以输入多个.dot按钮)
点按钮不应该按两次。 它应该只有一次活动。
谢谢穆罕默德
所以你想在用户第一次点击它时禁用名称为dotButton
的按钮:
要禁用按钮,请使用:
dotButton.isClickable=false
如果你想让按钮变成可再次点击(就像用户删除了他已经按下的那个点),你可以使用:
dotButton.isClickable=true
编辑 :修改你的活动代码,如下所示:
when (button.id) { buttonOne.id -> isClicked += "1" buttonTwo.id -> isClicked += "2" buttonThree.id -> isClicked += "3" dotButton.id-> { isClicked+="." dotButton.isClickable=false//**add this line here** } } fun clearFunction(view: View){ viewResult.setText("") dotButton.isClickable=true//**add this line here** }
- Java活动不会在布局中显示任何视图
- 如果活动写在Kotlin中,Button onClick属性是none
- 错误:找不到符号类为android studio 3.0稳定的java类添加kotlin类
- AAR / JAR不会使用Android Studio 3.0 Canary 7生成
- 为什么我不能指定我的Kotlin文件在Android Studio中的位置?
- android studio 3.0中的Kotlin-android和kotlin-android-extensions之间的区别
- 在kotlin如何做即时应用功能?
- 如何在Android Studio 3.0.0中使用数据绑定和Kotlin
- 在Kotlin中构建GridView时无法传递Context