Два флажка, можно выбрать только один
Я работаю над экраном входа в систему, где в основном вы можете выбрать, хотите ли вы получить 4-значный PIN-код или безопасный метод с использованием метода смахивания; я хочу, чтобы это выглядело так: в макете есть два флажка, изначально оба они не отмечены. Когда вы выбираете один, он проверяется, но затем, если вы пытаетесь выбрать другой, он автоматически отключает первый. У меня есть два флажка, определенных в макете, но меня немного смущает то, что я должен ссылаться, чтобы принудительно снять галочку.
public void onCheckBoxClicked(View view){
boolean checked = ((CheckBox)view).isChecked();
switch(view.getId()){
case R.id.setupCheckBox1:
if(checked){
}
По сути, я знаю, что что-то должно входить в оператор if{}, который автоматически снимает галочку с setupCheckBox2, но я просто не уверен, что нужно сделать ложным. Любая помощь приветствуется!
Кроме того, я понимаю, что это своего рода однострочный ответ: если у кого-то есть хорошие ссылки на флажки в Android, я бы тоже не прочел прочитать об этом, я вроде как новичок в этом.
3 ответа
Разработчики Android: http://developer.android.com/reference/android/widget/CheckBox.html
Ответ на аналогичный вопрос: /questions/5938213/kak-snyat-flazhok-s-android/5938221#5938221
Это очень просто, попробуйте этот код
public onCreate(Bundle savedInstanceState)
{
cbx_hindi.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked)
{
cbx_english.setChecked(false);
}
}
});
cbx_english.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked)
{
cbx_hindi.setChecked(false);
}
}
});
}
Используйте этот код и посмотрите выбранное значение ckeck box в logcat.....
public class MainActivity extends Activity implements OnClickListener {
CheckBox hindi, english;
Button submit;
String language;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
hindi = (CheckBox) findViewById(R.id.checkBox1);
english = (CheckBox) findViewById(R.id.checkBox2);
submit = (Button) findViewById(R.id.submit);
submit.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.submit:
if(hindi.isChecked())
{
language="hindi" ;
}
if(english.isChecked())
{
language="english" ;
}
if((hindi.isChecked()==true)&&(english.isChecked()==true))
{
Toast.makeText(DrivingTestActivity.this,
"please select one language", Toast.LENGTH_LONG).show();
}
else
{
System.out.println("language" + language);
}
break;
default:
break;
}
}
}