Сделать метод кнопки, если кнопка нажата или не нажата

Здесь у меня было много кнопок, которые случайным образом превращаются в видимые

     bt1 = (Button)findViewById(R.id.yellow1);
     bt2 = (Button)findViewById(R.id.yellow2);
     bt3 = (Button)findViewById(R.id.yellow3);
     bt4 = (Button)findViewById(R.id.yellow4);
     bt5 = (Button)findViewById(R.id.yellow5);
     bt6 = (Button)findViewById(R.id.yellow6);
     bt7 = (Button)findViewById(R.id.yellow7);
     bt8 = (Button)findViewById(R.id.yellow8);
     bt9 = (Button)findViewById(R.id.yellow9);
     bt10 = (Button)findViewById(R.id.yellow10);
     bt11 = (Button)findViewById(R.id.yellow11);
     bt12 = (Button)findViewById(R.id.yellow12);
     bt13 = (Button)findViewById(R.id.yellow13);
     bt14 = (Button)findViewById(R.id.yellow14);
     bt15 = (Button)findViewById(R.id.yellow15);
     bt16 = (Button)findViewById(R.id.yellow16);

        Button[] buttons = new Button[]{ bt1, bt2, bt3, bt4, bt5, bt6, bt7, bt8, 
                                         bt9, bt10, bt11, bt12, bt13, bt14, bt15, bt16 };

        Random generator = new Random();
        number = generator.nextInt(16); 

     for( int i=0; i<buttons.length; i++ )
            {
     if( i == number )
     buttons[i].setVisibility( View.VISIBLE );
     else
     buttons[i].setVisibility( View.INVISIBLE );
            }

Кнопка видна случайным образом, если один поворот к видимому, другой будет невидимым. и, конечно, метод, если кнопка была "нажата" на эту видимую кнопку

    if(click==bt1|| click==bt2|| click==bt3|| click==bt4 || click==bt5|| click==bt6|| click==bt7 || click==bt8|| 
       click==bt9|| click==bt10 || click==bt11|| click==bt12|| click==bt13 || click==bt14|| click==bt15|| click==bt16){

              //will do something

               }        
            }   

но я хочу сделать метод, если кнопка "не щелкает", когда она видна, поэтому, когда кнопка не нажата, он будет делать некоторый код.

я имею в виду это так

    //just example
    if button not clicked(click==bt1|| click==bt2|| click==bt3|| click==bt4 || click==bt5|| click==bt6|| click==bt7 || click==bt8|| 
       click==bt9|| click==bt10 || click==bt11|| click==bt12|| click==bt13 || click==bt14|| click==bt15|| click==bt16){

              //so do something

               }        
            }   

Может ли кто-нибудь научить меня, как сделать это с некоторым кодом?

НОТА:

Извините, я забыл написать часть кода, он остался на моем компьютере!

Так что я просто могу привести такой пример:

Каждую 1 секунду для кнопки случайным образом устанавливается значение "видимый", поэтому каждую 1 секунду для случайной кнопки устанавливается случайным образом значение "видимый", а кнопка, видимая за 1 секунду до этого, будет невидимой.

3 ответа

Решение

Проверьте это

  Handler visibilityToggler = new Handler();


        Runnable visivilityRunnable = new Runnable() {
            @Override
            public void run() {

                 // isUserClickedButton is used to keep record if user has pressed button within 1 sec
                //  keep isUserClickedButton = true for first time as it will run 
                if (!isUserClickedButton) {

                    // user not pressed button
                    Toast.makeText(context,"You are not pressed the Button",Toast.LENGHT_LONG).show();
                }

                // toggle visibility
                Random generator = new Random();
                number = generator.nextInt(16);

                for (int i = 0; i < buttons.length; i++) {
                    if (i == number)
                        buttons[i].setVisibility(View.VISIBLE);
                    else
                        buttons[i].setVisibility(View.INVISIBLE);
                }

            // again start the visibility 
              visibilityToggler.postDelayed(visivilityRunnable,1000);

                // make it false as visibility is toggled and we want to track button pressed from start
                isUserClickedButton = false;


            }
        };

visibilityToggler.postDelayed(visivilityRunnable,1000);

Onclick обработка, если пользователь нажал кнопку

        if (click == bt1 || click == bt2 || click == bt3 || click == bt4 || click == bt5 || click == bt6 || click == bt7 || click == bt8 ||
                click == bt9 || click == bt10 || click == bt11 || click == bt12 || click == bt13 || click == bt14 || click == bt15 || click == bt16) {

            //will do something


             // make it true as user is pressed button and we don't want to run condition of not pressed after 1 sec
            isUserClickedButton = true;


        }
    }
b1.setOnClickListener(new View.OnClickListener()

    {
        Button[] s=new Button[]{bt1, bt2, bt3, bt4, bt5, bt6, bt7, bt8, 
                                     bt9, bt10, bt11, bt12, bt13, bt14, bt15, bt16};
        Random generator = new Random();
        int number = generator.nextInt(16);

        @Override
        public void onClick(View v) {

            for( int i=0; i<s.length; i++ )
            {
                if( i == number )

                    s[i].setVisibility(View.VISIBLE);
                else

                    s[i].setVisibility(View.INVISIBLE);

            }
        }
    });

Вы можете определить логическое значение и использовать для своей кнопки onclicklistener, тогда, если пользователь нажмет кнопку, логическое значение будет ложным, и он не сможет написать код. Это флаг.

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