【发布时间】:2018-04-25 20:04:00
【问题描述】:
我在 Activtiy A 中保存了 button 和 checkbox。
当点击保存button时,如果checkbox被选中,它将显示checkbox文本。
save.setOnClickListener(new View.OnClickListener() { // if save button clicked
@Override
public void onClick(View v) {
if(checkbox.isChecked()) {
returnIntent.putExtra("outstation", checkbox.getText().toString());
Toast.makeText(getApplicationContext(),checkbox.getText().toString(),Toast.LENGTH_LONG).show();
}
}
});
public void addListenerOnChk() // for checkbox
{
checkbox=(CheckBox)findViewById(R.id.checkBox);
checkbox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(((CheckBox)v).isChecked())
{
// Toast.makeText(getApplicationContext(),checkbox.getText().toString(),Toast.LENGTH_LONG).show();
}
}
});
}
上面的代码工作正常,但看起来很奇怪。我在OnCreate 方法中定义了addListenerOnChk()。如何将复选框放入保存 onClick 而不是创建两个单独的 OnClick ? (一个是保存按钮,另一个是复选框)
【问题讨论】:
-
"" 单击保存按钮时,如果选中复选框,它将显示复选框文本。 ” “那你为什么要写这个声明?如果您想执行检查侦听器,那么您应该编写它。对所有视图都有效
-
@gvsharma 代码看起来正确吗?必须有两个 onClick ?
-
其实你不需要写 onclick 或者检查checkBox的监听器。删除复选框的该方法。因为您已经在按钮单击中检查复选框状态。
-
@gvsharma 如果我删除
addListenerOnChk(),单击保存按钮时不会显示复选框文本 -
checkbox=(CheckBox)findViewById(R.id.checkBox);在为 save 按钮调用 onClick 侦听器之前,在onCreate()方法中添加这一行。
标签: java android button checkbox onclicklistener