2016-02-16 2 views
0

Моя анимация I'snt работает по щелчку, вот мой код:Android анимация не работает по щелчку

Edit: теперь можно нажать кнопку, но ничего не происходит по щелчку

анимация: bottom_up. XML:

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
<translate android:fromYDelta="75%p" android:toYDelta="0%p" 
    android:fillAfter="true" 
    android:duration="500"/> 

вот моя ява MusicPlayerActivity.java:

btnPlayList.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Animation bottomUp = AnimationUtils.loadAnimation(MusicPlayerActivity.this, R.anim.bottom_up); 
      ViewGroup hiddenPanel = (ViewGroup) v.findViewById(R.id.hidden_panel); 
      hiddenPanel.startAnimation(bottomUp); 
      hiddenPanel.setVisibility(View.VISIBLE); 

     } 
    }); 
} 

Спасибо!

+1

Ваш код имеет исключение нулевого указателя, разместите полный код – drWisdom

+0

Скрытую панель нельзя загружать каждый раз, когда вы нажимаете. – karvoynistas

ответ

-1

java.lang.NullPointerException -> некоторые переменные не инициализированы. проверка всех переменных

+0

Добро пожаловать в переполнение стека. Пожалуйста, прочитайте справку, тур и вопросы, прежде чем задавать вопросы и отвечать на них. В частности, перед ответом стоит прочитать http://stackoverflow.com/help/how-to-answer. Ваш ответ, хотя и правильный, не очень хорош. Он не говорит плакату конкретно, что не так, или даже указывает ему в правильном направлении. –

0

проверить, если вы парафировано btnPlayList как этот btnPlayList = (Button) findViewById (R.id.btnPlayList);

или hiddenPanel не существует в этом представлении, на которое вы нажимаете;

+0

Спасибо! Я не знаю, как я это пропустил ... но это была проблема! –

+0

, но теперь, когда я нажимаю кнопку, ничего не происходит –

+0

вы можете показать мне xml-файл – user2934536

0

Ошибка, которую вы получаете, является очень распространенной. Это называется NullPointerException, потому что вы пытаетесь вызвать метод объекта, ссылка которого равна null, поэтому система не может разрешить метод. Вы читаете больше об этом исключении в этом link.

Линия, которая, вероятно, причиной этого является исключение:

ViewGroup hiddenPanel = (ViewGroup) v.findViewById(R.id.hidden_panel); 

Для того, чтобы исправить это, я хотел бы предложить две вещи:

  • Убедитесь, что идентификатор R.id.hidden_panel является правильным.
  • Если вы рассматриваете, что R.id.hidden_panel не может быть в макете, завернуть его использование с нулевой проверки:

    if (hiddenPanel != null) { 
        hiddenPanel.startAnimation(bottomUp); 
        hiddenPanel.setVisibility(View.VISIBLE); 
    } 
    

EDIT:

Чтобы исправить анимацию не отображается, попробуйте позвонить startAnimation после того, как вы установите скрытую панель в Visible, а не раньше.

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