kotlin更改函数内的var值(SetOnClickListner)

时间:2019-03-28 10:41:29

标签: android kotlin

我有两个按钮btn1(scan_sac)和btn2(scan_scelle)和两个文本视图t1(ed_idSac)和t2(ed_scelle)。在每个按钮的onClickListner内,我将调用一个函数以启动相机读取条形码。该摄像机返回在onActivityResult函数中读取的条形码的值;在此函数(onActivityResult)中,我正在更新两个textViews之一的值

根据点击的按钮,我将更改适当的textview的值:

  • 如果单击btn1,则t1将被更新
  • 如果单击btn2,则将更新t2

现在,我只能测试单击哪个按钮来更新相应的textView。 我必须使用布尔Scelle来检查单击了哪个按钮。 如果scelle为true,则单击scan_scelle(btn2)

4 个答案:

答案 0 :(得分:1)

因此,如果我理解正确,那么您想知道单击了哪个按钮即可更新正确的文本视图。 一种解决方案是为每个按钮具有两个布尔值,并且当按下按钮时,您会将布尔值设置为true。 稍后在onActivityResult中,您可以检查这些布尔值并更新正确的文本视图。

答案 1 :(得分:1)

requestCode方法中的两个按钮使用不同的onActivityResult,检查requestCode并将字符串放在受尊重的textView

答案 2 :(得分:1)

var buttonIdentity :false
val button1= findViewById<Button>(R.id.textview)
button1.setOnClickListener(clickListener)

val button2 = findViewById<Button>(R.id.button)
button2.setOnClickListener(clickListener)

val clickListener = View.OnClickListener {view ->

    when (view.getId()) {
        R.id.button1-> buttonIdentity =true
        R.id.button2 -> buttonIdentity  =false
    }
}

答案 3 :(得分:1)

override fun onActivityResult(requestCode: Int, resultCode: Int, data:Intent)

在单击b1和b2时使用不同的请求代码。...