Domanda

Ho 2 pulsanti di opzione e 4 caselle di controllo di cui voglio conservare il conteggio. Quando si seleziona il pulsante di radio 1, dovresti essere in grado di selezionare solo 3 caselle di controllo. Di seguito è il mio codice. Ho provato la logica di Newts ma non conta correttamente ... aiuto!

        RadioButton radio3, radio6;
    int count=0;
    int pubsSelected=0;

      /** Called when the activity is first created. */
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
          radio3 = (RadioButton) findViewById(R.id.radio0);
          radio6 = (RadioButton) findViewById(R.id.radio1);


        //---RadioButton1---
          radio3.setOnClickListener(new RadioGroup.OnClickListener() {
              public void onClick(View v){
                int  pubsSelected = 3;
                int  count=0;

DisplayToast("RadioButton is checked" +" "+ pubsSelected);  }
              });

        //---RadioButton2---
          radio6.setOnClickListener(new RadioGroup.OnClickListener() {
              public void onClick(View v){
                int  pubsSelected = 6;
                int  count=0;

DisplayToast("RadioButton is checked" + " "+ pubsSelected);  }
              });




          //---CheckBox 1---
            CheckBox checkBox = (CheckBox) findViewById(R.id.checkBox1);
            checkBox.setOnClickListener(new View.OnClickListener()
                    {
                public void onClick(View v) {
                    while(count < pubsSelected )    {
                    if (((CheckBox)v).isChecked()) 
                                    count++;
                    DisplayToast("CheckBox is checked" + " " + count);

                }
                }} );
          //---CheckBox 2---
            CheckBox checkBox2 = (CheckBox) findViewById(R.id.checkBox2);
            checkBox2.setOnClickListener(new View.OnClickListener()

            {
                public void onClick(View v) {
                    while(count < pubsSelected) {
                    if (((CheckBox)v).isChecked()) 
                        count++;
                    DisplayToast("CheckBox is checked" + " " + count);

                }
            }}); 
          //---CheckBox 3---

            CheckBox checkBox3 = (CheckBox) findViewById(R.id.checkBox3);
            checkBox3.setOnClickListener(new View.OnClickListener()

            {
                public void onClick(View v) {
                    while(count < pubsSelected) {
                }
                    if (((CheckBox)v).isChecked()) 
                        count++;
                    DisplayToast("CheckBox is checked" + " " + count);

                }
            });
//---CheckBox 4---

            CheckBox checkBox4 = (CheckBox) findViewById(R.id.checkBox4);
            checkBox4.setOnClickListener(new View.OnClickListener()

            {
                public void onClick(View v) {

                    if (pubsSelected==3){



                       DisplayToast( "you have selected" + pubsSelected );

                                        }
                    else{
                        if (pubsSelected==6){

                           DisplayToast(" you have selected" + pubsSelected );
                        }
                }}});
      }
            private int DisplayToast(String msg)
           {
                Toast.makeText(getBaseContext(), msg, 
                        Toast.LENGTH_SHORT).show();
                return count;  
           }
}
È stato utile?

Soluzione

Penso che tu debba mettere una logica in questo modo

Aggiornato

su 4 Casella di controllo Condizioni di controllo come questa

if(pubsSelected==3)
{
uncheck
} 
else
{
checked
}

È un'altra semplice logica per te

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top