Два флажка, можно выбрать только один

Я работаю над экраном входа в систему, где в основном вы можете выбрать, хотите ли вы получить 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;
        }

               } 
              }
Другие вопросы по тегам