2013-04-04 1 views
3

Я новичок в разработке Android. Я написал этот код, и я просто не могу понять, что приводит к сбою моего приложения. Это говорит мне, что деятельность не могла быть приостановлена. Я уверен, что это то, что я оставляю. Я написал очень похожий код, который работал в прошлом, поэтому я просто не знаю, с чего начать.Не удается приостановить активность?

SplashActivity.java

public class SplashActivity extends Activity 
{ 
    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_splash); 

     ImageView logo = (ImageView) findViewById(R.id.ImageViewLogo); 
     Animation twistIn = AnimationUtils.loadAnimation(this, R.anim.twist_in); 
     logo.startAnimation(twistIn); 
     twistIn.setAnimationListener(new AnimationListener() 
     { 
      public void onAnimationStart(Animation animation) 
      { 
       return; // do nothing 
      } 
      public void onAnimationRepeat(Animation animation) 
      { 
       return; // do nothing 
      } 
      public void onAnimationEnd(Animation animation) 
      { 
       startActivity(new Intent(SplashActivity.this, MenuActivity.class)); 
       SplashActivity.this.finish(); 
      } 
     }); 
    } 

    @Override 
    protected void onPause() 
    { 
     super.onPause(); 

     TextView logo = (TextView) findViewById(R.id.ImageViewLogo); 
     logo.clearAnimation(); 
    } 
} 

И вот LogCat жалуюсь:

04-04 02:09:10.460: W/dalvikvm(12531): threadid=1: thread exiting with uncaught exception (group=0x4001e578) 
04-04 02:09:10.480: E/AndroidRuntime(12531): FATAL EXCEPTION: main 
04-04 02:09:10.480: E/AndroidRuntime(12531): java.lang.RuntimeException: Unable to pause activity {com.swapwords/com.swapwords.SplashActivity}: java.lang.ClassCastException: android.widget.ImageView 
04-04 02:09:10.480: E/AndroidRuntime(12531): at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2358) 
04-04 02:09:10.480: E/AndroidRuntime(12531): at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2315) 
04-04 02:09:10.480: E/AndroidRuntime(12531): at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:2295) 
04-04 02:09:10.480: E/AndroidRuntime(12531): at android.app.ActivityThread.access$1700(ActivityThread.java:117) 
04-04 02:09:10.480: E/AndroidRuntime(12531): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:942) 
04-04 02:09:10.480: E/AndroidRuntime(12531): at android.os.Handler.dispatchMessage(Handler.java:99) 
04-04 02:09:10.480: E/AndroidRuntime(12531): at android.os.Looper.loop(Looper.java:130) 
04-04 02:09:10.480: E/AndroidRuntime(12531): at android.app.ActivityThread.main(ActivityThread.java:3691) 
04-04 02:09:10.480: E/AndroidRuntime(12531): at java.lang.reflect.Method.invokeNative(Native Method) 
04-04 02:09:10.480: E/AndroidRuntime(12531): at java.lang.reflect.Method.invoke(Method.java:507) 
04-04 02:09:10.480: E/AndroidRuntime(12531): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912) 
04-04 02:09:10.480: E/AndroidRuntime(12531): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:670) 
04-04 02:09:10.480: E/AndroidRuntime(12531): at dalvik.system.NativeStart.main(Native Method) 
04-04 02:09:10.480: E/AndroidRuntime(12531): Caused by: java.lang.ClassCastException: android.widget.ImageView 
04-04 02:09:10.480: E/AndroidRuntime(12531): at com.swapwords.SplashActivity.onPause(SplashActivity.java:57) 
04-04 02:09:10.480: E/AndroidRuntime(12531): at android.app.Activity.performPause(Activity.java:3893) 
04-04 02:09:10.480: E/AndroidRuntime(12531): at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1194) 
04-04 02:09:10.480: E/AndroidRuntime(12531): at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2345) 
04-04 02:09:10.480: E/AndroidRuntime(12531): ... 12 more 
04-04 02:09:12.452: I/dalvikvm(12531): threadid=4: reacting to signal 3 
04-04 02:09:12.452: I/dalvikvm(12531): Wrote stack traces to '/data/anr/traces.txt' 
04-04 02:09:18.878: I/dalvikvm(12531): threadid=4: reacting to signal 3 
04-04 02:09:18.878: I/dalvikvm(12531): Wrote stack traces to '/data/anr/traces.txt' 

Я просто потерял.

ответ

3

использование

ImageView logo = (ImageView) findViewById(R.id.ImageViewLogo); 

вместо

TextView logo = (TextView) findViewById(R.id.ImageViewLogo); 

в onPause() метод, потому что в настоящее время вы пытаетесь бросить ImageView (который вы добавили в макете XML) для TextView

+0

О-хо-хо вау. Благодаря! –

2

Вы пытаетесь для ссылки ImageView с Textview , поэтому он выбрасывает ClassCastException

Изменить этот

TextView logo = (TextView) findViewById(R.id.ImageViewLogo); 

к этому

ImageView logo = (ImageView) findViewById(R.id.ImageViewLogo); 
1

Смотрите эту строку в OnCreate метод()

ImageView logo = (ImageView) findViewById(R.id.ImageViewLogo); 

И OnPause() метод использование написал TextView вместо ImageView как выше

TextView logo = (TextView) findViewById(R.id.ImageViewLogo); 

Так что это дает вам classcast исключение .. Изменение TextView в ImageView