2013-09-20 6 views
2

Я использую кнопку и, щелкнув ее, открывается раскрывающийся список и знак стрелки changes.but, но я хочу скрыть выпадающий список на кнопку click again.mean, чтобы показать и скрыть поочередно при нажатии кнопки. Я использую этот код.показать и скрыть выпадающий список на кнопке?

protected void onCreate(Bundle savedInstanceState) { 
    myphotosBtn=(Button)findViewById(R.id.myPhotosBtn); 
    myphotosBtn.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
     arrowDown.setImageResource(R.drawable.arrow_up); 
     findViewById(R.id.dropdownList).setVisibility(View.VISIBLE); 
     } 
    }); 

, пожалуйста, помогите.

+0

Вы можете отображать и скрывать изображение, когда нажимаете кнопку одним нажатием кнопки .right? – dipali

+0

да, я хочу это сделать. я могу показать список на клик кнопки, но хочет скрыть список по его щелчку снова – Nidhi

ответ

3

Вы можете использовать boolean.

Позволяет сказать ..

boolean isButton=true; 


    protected void onCreate(Bundle savedInstanceState) { 
     myphotosBtn=(Button)findViewById(R.id.myPhotosBtn); 
     myphotosBtn.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 


      if(isButton){ 
         arrowDown.setImageResource(R.drawable.arrow_up); 
         findViewById(R.id.dropdownList).setVisibility(View.VISIBLE); 
         isButton=false; 
      }else{ 
         arrowDown.setImageResource(R.drawable.down); 
         findViewById(R.id.dropdownList).setVisibility(View.GONE); 
         isButton=true; 
       } 
      } 
     }); 
+0

Это работает .. спасибо .. – Nidhi

+1

Рад помочь вам Нидхи. –

+0

привет Харди. Не могли бы вы рассказать, почему список открывается только при двойном нажатии кнопки? его не работает на один клик – Nidhi

1

Попробуйте это:

protected void onCreate(Bundle savedInstanceState) { 
    myphotosBtn=(Button)findViewById(R.id.myPhotosBtn); 
    Boolean temp=false; 
    myphotosBtn.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
     if(temp){ 
      arrowDown.setImageResource(R.drawable.arrow_down); 
      findViewById(R.id.dropdownList).setVisibility(View.GONE); 
      temp=false; 
     }else{ 

      arrowDown.setImageResource(R.drawable.arrow_up); 
      findViewById(R.id.dropdownList).setVisibility(View.VISIBLE); 
      temp=true; 
     } 


     } 
    }); 

Возьмите это в качестве ссылки и развивать свою логику.

Другой способ реализовать это: использовать CheckBox вместо Button и написать код метода onChecked. Вы также можете достичь этого, используя его.

+0

спасибо 4 ваш ответ. но этот метод имел некоторые недостатки. Я использовал метод Харди. это совершенно правильно. – Nidhi

0
boolean isshow=false; 

protected void onCreate(Bundle savedInstanceState) { 
    myphotosBtn=(Button)findViewById(R.id.myPhotosBtn); 

    myphotosBtn.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      if(!isshow) 
       arrowDown.setImageResource(R.drawable.arrow_up); 
       findViewById(R.id.dropdownList).setVisibility(View.VISIBLE); 
       isshow=true; 
      } else { 
       arrowDown.setImageResource(R.drawable.arrow_up); 
       findViewById(R.id.dropdownList).setVisibility(View.INVISIBLE); 
       isshow=false; 
      } 
     }); 

Вы можете использовать sharedpreferences для хранения значения переменной booolean.

0

Я знаю, что на этот вопрос уже дан ответ, но если вы можете наткнуться на это, вы ищете возможность выпадающего меню для создания меню: я хотел бы указать вам на this link.

Это стандарт Android, как создать всплывающее меню (которое выглядит точно как выпадающий список под кнопкой).

Смежные вопросы