Я пытаюсь реализовать анимацию карты, переворачивающуюся на андроидных фрагментах. Таким образом, я могу иметь переднюю сторону с собственным пользовательским представлением и тем же самым со спиной.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
Тогда у меня есть три метода
- flipCard()
- flipFront()
- 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, но я наклоняю, кажется, обволакиваю его пальцем, я положил его на другой день, и теперь я возвращаюсь к нему.
Я очень благодарен за любую помощь по этому вопросу!
Что такое линия 174? в PFANewPostcard_Activity – ObieMD5
if (backMessageEdit.getText(). toString()! = null) @ ObieMD5 – Keeano