2013-08-01 5 views
3

Я пытаюсь реализовать анимацию карты, переворачивающуюся на андроидных фрагментах. Таким образом, я могу иметь переднюю сторону с собственным пользовательским представлением и тем же самым со спиной.Flip Animation Crashes

Моя проблема в том, когда отображается обратная сторона карты, что означает, что анимация флип была вызвана один раз раньше. При нажатии на кнопку, чтобы снова отобразить передний фрагмент, он выдает приложение с приведенной ниже ошибкой.

07-31 20:26:14.649: E/AndroidRuntime(28575): FATAL EXCEPTION: main 
07-31 20:26:14.649: E/AndroidRuntime(28575): java.lang.NullPointerException 
07-31 20:26:14.649: E/AndroidRuntime(28575): at com.Pivotl.PostcardsFromAlaska.PFANewPostcard_Activity.flipCard(PFANewPostcard_Activity.java:174) 
07-31 20:26:14.649: E/AndroidRuntime(28575): at com.Pivotl.PostcardsFromAlaska.PFANewPostcard_Activity.access$0(PFANewPostcard_Activity.java:168) 
07-31 20:26:14.649: E/AndroidRuntime(28575): at com.Pivotl.PostcardsFromAlaska.PFANewPostcard_Activity$2.onClick(PFANewPostcard_Activity.java:99) 
07-31 20:26:14.649: E/AndroidRuntime(28575): at android.view.View.performClick(View.java:4223) 
07-31 20:26:14.649: E/AndroidRuntime(28575): at android.view.View$PerformClick.run(View.java:17281) 
07-31 20:26:14.649: E/AndroidRuntime(28575): at android.os.Handler.handleCallback(Handler.java:615) 
07-31 20:26:14.649: E/AndroidRuntime(28575): at android.os.Handler.dispatchMessage(Handler.java:92) 
07-31 20:26:14.649: E/AndroidRuntime(28575): at android.os.Looper.loop(Looper.java:137) 
07-31 20:26:14.649: E/AndroidRuntime(28575): at android.app.ActivityThread.main(ActivityThread.java:4898) 
07-31 20:26:14.649: E/AndroidRuntime(28575): at java.lang.reflect.Method.invokeNative(Native Method) 
07-31 20:26:14.649: E/AndroidRuntime(28575): at java.lang.reflect.Method.invoke(Method.java:511) 
07-31 20:26:14.649: E/AndroidRuntime(28575): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1008) 
07-31 20:26:14.649: E/AndroidRuntime(28575): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775) 
07-31 20:26:14.649: E/AndroidRuntime(28575): at dalvik.system.NativeStart.main(Native Method) 

Мои анимации были сделаны из этого урока: http://developer.android.com/training/animation/cardflip.html

Тогда у меня есть три метода

  1. flipCard()
  2. flipFront()
  3. flipBack()

flipCard():

private void flipCard() 
    { 
     Log.d(tag2, "Log after flipCard:" + mShowingBack); 
     if(mShowingBack) 
     { 
      //Check Items and Save variables 
      if(backMessageEdit.getText().toString() != null){ 
       //save string 
       backMessage = backMessageEdit.getText().toString(); 
      } 
      //show front 
      flipFront(); 
      return; 
     } 
     // Flip to back 
     flipBack(); 
    } 

flipFront():

private void flipFront() 
    { 
     mShowingBack = false; 
     getFragmentManager() 
     .beginTransaction() 
     .setCustomAnimations(R.animator.card_flip_left_in, R.animator.card_flip_left_out, 
       R.animator.card_flip_right_in, R.animator.card_flip_right_out) 
     .replace(R.id.postcardFrame, new CardFrontFragment()) 
     .addToBackStack(null) 
     .commit(); 

    } 

flipBack():

private void flipBack() 
    { 
     getFragmentManager() 
     .beginTransaction() 
     .setCustomAnimations(
       R.animator.card_flip_right_in, R.animator.card_flip_right_out, 
       R.animator.card_flip_left_in, R.animator.card_flip_left_out) 
     .replace(R.id.postcardFrame, new CardBackFragment()) 
     .addToBackStack(null) 
     .commit(); 
     mShowingBack = true; 
    } 

на кнопку мыши я называю flipCard так:

cardBackButton.setOnClickListener(new Button.OnClickListener(){ 

      @Override 
      public void onClick(View v) { 
       //Check what side is showing 
       //Then perform flip left or right 
       flipCard(); 
      } 
     }); 

Кажется, очень прямой forwa rd, но я наклоняю, кажется, обволакиваю его пальцем, я положил его на другой день, и теперь я возвращаюсь к нему.

Я очень благодарен за любую помощь по этому вопросу!

+0

Что такое линия 174? в PFANewPostcard_Activity – ObieMD5

+0

if (backMessageEdit.getText(). toString()! = null) @ ObieMD5 – Keeano

ответ

1

Мне нужно было бы увидеть больше кода, однако я должен был бы сказать, что у вас нет правильной ссылки на backMessageEdit.

+0

Ваша жизнь заставка прямо сейчас, я прокомментировал, что один раздел и бум .... все работает так гладко! – Keeano

+0

Выполнение этого способа обновляет страницы? Я имею в виду, сохраняете ли вы содержимое предыдущей страницы на заднем диске? – Skynet