2012-05-07 85 views
0

我現在使用四個不同的類來查看我想要在一個類中組合四個類的對象,然後想實現ontouchlistener,但它向我顯示錯誤。我不理解那個錯誤。我的代碼如下:android class using viewflipper

public class AdActivity extends Activity { 

    DemoView demoview ; 
    DemoView2 finalview; 
    DemoView3 dview; 
    DemoView4 deview; 
    LowerView lview; 
    Finalview fview; 

    ViewFlipper c,d ; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     demoview = new DemoView(this); 
     finalview = new DemoView2(this); 
     dview= new DemoView3(this); 
     deview = new DemoView4(this); 
     lview= new LowerView(this); 
     fview=new Finalview(this); 
     setContentView(fview); 
    } 

    public class Finalview extends View { 
     public Finalview(Context context) { 
      super(context); 
      // TODO Auto-generated constructor stub 
      c=(ViewFlipper)findViewById(R.id.viewFlipper2); 
      c.addView(demoview,0); 
      c.addView(finalview, 1); 
      c.addView(dview, 2); 
      c.addView(deview, 3); 
      c.setAutoStart(true); 
      c.setFlipInterval(1000); 
      c.startFlipping(); 

      d=(ViewFlipper)findViewById(R.id.viewFlipper3); 
      d.addView(lview,0); 
     } 
    } 
} 

我的堆棧跟蹤顯示以下error.i沒有得到此錯誤。

05-07 15:28:56.900: E/AndroidRuntime(515): FATAL EXCEPTION: main 
05-07 15:28:56.900: E/AndroidRuntime(515): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.ad/com.example.ad.AdActivity}: java.lang.NullPointerException 
05-07 15:28:56.900: E/AndroidRuntime(515): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 
05-07 15:28:56.900: E/AndroidRuntime(515): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
05-07 15:28:56.900: E/AndroidRuntime(515): at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
05-07 15:28:56.900: E/AndroidRuntime(515): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
05-07 15:28:56.900: E/AndroidRuntime(515): at android.os.Handler.dispatchMessage(Handler.java:99) 
05-07 15:28:56.900: E/AndroidRuntime(515): at android.os.Looper.loop(Looper.java:123) 
05-07 15:28:56.900: E/AndroidRuntime(515): at android.app.ActivityThread.main(ActivityThread.java:4627) 
05-07 15:28:56.900: E/AndroidRuntime(515): at java.lang.reflect.Method.invokeNative(Native Method) 
05-07 15:28:56.900: E/AndroidRuntime(515): at java.lang.reflect.Method.invoke(Method.java:521) 
05-07 15:28:56.900: E/AndroidRuntime(515): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
05-07 15:28:56.900: E/AndroidRuntime(515): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
05-07 15:28:56.900: E/AndroidRuntime(515): at dalvik.system.NativeStart.main(Native Method) 
05-07 15:28:56.900: E/AndroidRuntime(515): Caused by: java.lang.NullPointerException 
05-07 15:28:56.900: E/AndroidRuntime(515): at com.example.ad.AdActivity$Finalview.<init>(AdActivity.java:420) 
05-07 15:28:56.900: E/AndroidRuntime(515): at com.example.ad.AdActivity.onCreate(AdActivity.java:44) 
05-07 15:28:56.900: E/AndroidRuntime(515): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
05-07 15:28:56.900: E/AndroidRuntime(515): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
05-07 15:28:56.900: E/AndroidRuntime(515): ... 11 more 

回答

0

您的堆棧跟蹤的重要組成部分,是這樣的:

05-07 15:28:56.900: E/AndroidRuntime(515): Caused by: java.lang.NullPointerException 
05-07 15:28:56.900: E/AndroidRuntime(515): at com.example.ad.AdActivity$Finalview.<init>(AdActivity.java:420) 
05-07 15:28:56.900: E/AndroidRuntime(515): at com.example.ad.AdActivity.onCreate(AdActivity.java:44) 

這表明,無論是「C」或「d」在FinalView構造由呼叫設置爲空,以findViewByID() 。

您確定R.id.viewFlipper2和R.id.viewFlipper3實際上是在創建AdActivity的時候自己構建的嗎?這些活動的UI XML描述是否包含這些部分?