我在 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();
}
}
});
}
上面的代码工作正常,但看起来很奇怪。我在addListenerOnChk()
方法中定义OnCreate
。如何将复选框保存在保存onClick
内,而不是创建两个单独的OnClick
? (一个是保存按钮,另一个是复选框)
答案 0 :(得分:2)
第一种方法是正确的..
第二种方法不是必需的。 checkBox.isChecked是您需要使用的所有内容..您也不必为复选框设置监听器。
答案 1 :(得分:1)
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();
checkbox.setText("your text here");
} else {
checkbox.setText("");
}
}
});
希望这有帮助
答案 2 :(得分:1)
参考这个问题
“如何将复选框放在保存onClick而不是创建两个单独的OnClick?”
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//your UI setup and findViewById stuff
save.setOnClickListener(this);//implement - View.OnClickListener
checkBox.setOnClickListener(this);//implement - View.OnClickListener
checkBox.setOnCheckedChangeListener(this);//prefer this one get check box status
}
@Override
public void onClick(View v) {
if(v.getId()==R.id.save_button){
//save button action stuff
} else if(v.getId()==R.id.check_box){
//checkbox button action stuff
Log.i("TAG", " Check box status " + checkBox.isChecked());
}
}
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
Log.i("TAG", " Check box status " + isChecked);
}