Ana*_*put 5 java android onclick button kotlin
我想知道如何向XML定义的按钮中添加多个单击事件,就像以前在Java中一样,我们实现了View.onClickListenerinterface并完成了onClick方法中的其余工作。
例:
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.oneButton:
// do your code
break;
case R.id.twoButton:
// do your code
break;
case R.id.threeButton:
// do your code
break;
default:
break;
}
}
Run Code Online (Sandbox Code Playgroud)
我正在用新的Kotlin开发一个基本的计算器应用程序,但是Kotlin似乎没有这样的规定,相反,我的代码看起来太冗长,因为我将事件分别附加到所有按钮上。
有人可以告诉我在Kotlin如何做同样的事情吗?谢谢
是的,在 Kotlin 中你可以这样做:
view.setOnClickListener(object : View.OnClickListener {
override fun onClick(v: View?) {
when(v?.id) {
R.id.imgBack -> {/* do your code */}
R.id.twoButton -> {/* do your code */}
R.id.threeButton -> {/* do your code */}
else -> {/* do your code */}
}
}
}
Run Code Online (Sandbox Code Playgroud)
您可以尝试以下代码:
class Testing:AppCompatActivity(), View.OnClickListener {
private val mButton1:Button
private val mButton2:Button
protected fun onCreate(savedInstanceState:Bundle) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_testing)
mButton1 = findViewById(R.id.btn_click) as Button
mButton2 = findViewById(R.id.btn_click1) as Button
mButton1.setOnClickListener(this)
mButton2.setOnClickListener(this)
}
fun onClick(view:View) {
when (view.getId()) {
R.id.btn_click -> {
Toast.makeText(this, "button 1", Toast.LENGTH_SHORT).show()
}
R.id.btn_click1 -> {
Toast.makeText(this, "button 2", Toast.LENGTH_SHORT).show()
}
else -> {}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我希望这对你有帮助。
对于中的多个onClickListeners kotlin (version:1.1.60),以下内容对我有所帮助。希望它对其他人也有用。
实施OnClickListener至以下活动:
class YourActivity : AppCompatActivity(), View.OnClickListener
Run Code Online (Sandbox Code Playgroud)
将您的按钮设置在onCreate():
val button = findViewById<Button>(R.id.buttonId)
Run Code Online (Sandbox Code Playgroud)
并分配onclick给按钮onCreate():
button.setOnClickListener { onClick(button) }
Run Code Online (Sandbox Code Playgroud)
并在的替代方法中onClick():
override fun onClick(v: View) {
when (v.id) {
R.id.buttonId -> { //your code }
..
..
..
else -> { //your code }
}
}
Run Code Online (Sandbox Code Playgroud)
首先OnClickListener在你的中实现Activity,比如
class MainActivity : Activity , OnClickListener
Run Code Online (Sandbox Code Playgroud)
然后重写它的实现,例如
func onClick(v:View) {
//use when here like
case R.id.youview -> {
// do your work on click of view
}
Run Code Online (Sandbox Code Playgroud)
不要忘记在您的View.
yourView.setOnClickListener(this)
Run Code Online (Sandbox Code Playgroud)
或者为了更好地理解一步一步 -
OnClickListener在您的Activity.
编译器会要求你实现重写的方法。实施这些。
复制粘贴您在onClick方法中编写的java代码,该代码可以由kotlin本身转换或写下when条件。
| 归档时间: |
|
| 查看次数: |
9450 次 |
| 最近记录: |