반응형
Android: 확인란 수신기
Listener를 위에 배치하고 싶다.CheckBox
정보를 검색해 보니 다음과 같습니다.
satView = (CheckBox)findViewById(R.id.sateliteCheckBox);
satView.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (isChecked){
// perform logic
}
}
});
문제는 이클립스가 자기 생각을OnCheckedChangeListener
잠깐 동안RadioGroup
효과가 없어요어떻게 하면 고칠 수 있을까요?
다음과 같이 할 수 있습니다.
satView.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
}
}
);
당신은 또한 심플한 것으로 갈 수 있다.View.OnClickListener
:
satView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(((CompoundButton) view).isChecked()){
System.out.println("Checked");
} else {
System.out.println("Un-Checked");
}
}
});
패키지를 잘못 가져왔기 때문에 오류가 발생합니다.당신은 그래야 한다.import android.widget.CompoundButton.OnCheckedChangeListener;
따라서 콜백은 다음과 같습니다.
box.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
}
});
이것을 시험해 보세요.
satView = (CheckBox) findViewById(R.id.sateliteCheckBox);
satView.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (buttonView.isChecked()) {
// checked
}
else
{
// not checked
}
}
});
이게 도움이 됐으면 좋겠다.
Chris가 수락한 답변을 Kotlin으로 번역:
val checkBox: CheckBox = findViewById(R.id.chk)
checkBox.setOnCheckedChangeListener { buttonView, isChecked ->
// Code here
}
이거 먹어봐
satView.setOnCheckedChangeListener(new android.widget.CompoundButton.OnCheckedChangeListener.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (isChecked){
// perform logic
}
}
});
바꾸다RadioGroup group
와 함께CompoundButton buttonView
Ctrl+Shift+O를 눌러 가져오기를 수정합니다.
이 코드를 사용할 수 있습니다.
public class MySampleActivity extends Activity {
CheckBox cb1, cb2, cb3, cb4;
LinearLayout l1, l2, l3, l4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
cb1 = (CheckBox) findViewById(R.id.cb1);
cb2 = (CheckBox) findViewById(R.id.cb2);
cb3 = (CheckBox) findViewById(R.id.cb3);
cb4 = (CheckBox) findViewById(R.id.cb4);
l1 = (LinearLayout) findViewById(R.id.l1);
l2 = (LinearLayout) findViewById(R.id.l2);
l3 = (LinearLayout) findViewById(R.id.l3);
l4 = (LinearLayout) findViewById(R.id.l4);
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
cb1.setOnCheckedChangeListener(new MyCheckedChangeListener(1));
cb1.setOnCheckedChangeListener(new MyCheckedChangeListener(2));
cb1.setOnCheckedChangeListener(new MyCheckedChangeListener(3));
cb1.setOnCheckedChangeListener(new MyCheckedChangeListener(4));
}
public class MyCheckedChangeListener implements CompoundButton.OnCheckedChangeListener {
int position;
public MyCheckedChangeListener(int position) {
this.position = position;
}
private void changeVisibility(LinearLayout layout, boolean isChecked) {
if (isChecked) {
l1.setVisibility(View.VISIBLE);
} else {
l1.setVisibility(View.GONE);
}
}
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
switch (position) {
case 1:
changeVisibility(l1, isChecked);
break;
case 2:
changeVisibility(l2, isChecked);
break;
case 3:
changeVisibility(l3, isChecked);
break;
case 4:
changeVisibility(l4, isChecked);
break;
}
}
}
}
h.chk.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view)
{
CheckBox chk=(CheckBox)view; // important line and code work
if(chk.isChecked())
{
Message.message(a,"Clicked at"+position);
}
else
{
Message.message(a,"UnClick");
}
}
});
인터페이스를 실장하고 있는 경우, Kotlin에서 이것을 실행할 필요가 있습니다.
class MainActivity: AppCompatActivity(),CompoundButton.OnCheckedChangeListener{
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val yourCheckBox = findViewById<CheckBox>(R.id.check_box)
yourCheckBox.setOnCheckedChangeListener(this)
}
override fun onCheckedChanged(buttonView: CompoundButton?, isChecked: Boolean) {
when(buttonView?.id){
R.id.check_box -> Log.d("Checked: ","$isChecked")
}
}
}
언급URL : https://stackoverflow.com/questions/8386832/android-checkbox-listener
반응형
'sourcecode' 카테고리의 다른 글
Java 7에서의 종료 (0) | 2022.09.15 |
---|---|
SQLSTATE[HY000 [ 2002 ]라벨 홈스테드 내에서 접속이 거부되었습니다. (0) | 2022.09.15 |
JSON에서 Panda Data Frame으로 (0) | 2022.09.15 |
WAMP를 사용하여 phpMyAdmin에 로그인하는 방법, 사용자 이름과 비밀번호는 무엇입니까? (0) | 2022.09.15 |
고유하지 않은 테이블/에일리어스 (0) | 2022.09.15 |