2016-05-25 3 views
0

Ich bin ziemlich neu in Android tragen. Ich habe das SampleGridPagerAdapter-Beispiel durchgesehen und versucht, diesen Code zu generieren. Ich habe auch auf eine ähnliche Frage (What is the correct way to implement a GridViewPager on Android Wear?) von Stapelüberlauf verwiesen und folgte dem Verfahren. Aber ich bekomme eine NullpunktException. Ich konnte in beiden Samples, die ich durchgesehen habe, keine weiteren hinzufügen. Ich füge meinen Code und den Logcat-Trace an. Danke im Voraus.navigieren Sie horizontal zwischen zwei verschiedenen Layouts (2 xml-Dateien) in Android tragen

Code:

public class MainActivity extends Activity { 

    private BoxInsetLayout mContainerView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     final DotsPageIndicator mPageIndicator; 
     final GridViewPager mViewPager; 
     mPageIndicator = (DotsPageIndicator)    findViewById(R.id.page_indicator); 
     mViewPager = (GridViewPager)findViewById(R.id.pager); 
     mViewPager.setAdapter(new MyGridPagerAdapter()); 
     mPageIndicator.setPager(mViewPager); 
    } 

    private class MyGridPagerAdapter extends GridPagerAdapter{ 

     @Override 
     public int getRowCount() { 
      return 2; 
     } 

     @Override 
     public int getColumnCount(int i) { 
      return 2; 
     } 

     @Override 
     public Object instantiateItem(ViewGroup container, int row, int col) { 
      View view = null; 
      view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.UI1,container,false); 
      container.addView(view); 
      return view; 
     } 

     @Override 
     public void destroyItem(ViewGroup container, int row, int col, Object view)  { 
      container.removeView((View)view); 
     } 

     @Override 
     public boolean isViewFromObject(View view, Object object) { 
      return view==object; 
     } 
    } 
} 

Logcat Spur ist:

com.example.wearable E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.wearable, PID: 2238 
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.wearable/com.example.wearable.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.wearable.view.GridViewPager.setAdapter(android.support.wearable.view.GridPagerAdapter)' on a null object reference 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
at android.app.ActivityThread.-wrap11(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:5422) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.wearable.view.GridViewPager.setAdapter(android.support.wearable.view.GridPagerAdapter)' on a null object reference 
at com.example.wearable.MainActivity.onCreate(MainActivity.java:25) 
at android.app.Activity.performCreate(Activity.java:6251) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  
at android.app.ActivityThread.-wrap11(ActivityThread.java)  
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  
at android.os.Handler.dispatchMessage(Handler.java:102)  
at android.os.Looper.loop(Looper.java:148)  
at android.app.ActivityThread.main(ActivityThread.java:5422)  
at java.lang.reflect.Method.invoke(Native Method)  
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  

Antwort

0

am Stack-Trace Blick scheint es, dass mViewPager am Punkt null ist, dass Sie versuchen setAdapter darauf zu nennen . Das bedeutet, dass findViewById es nicht in Ihrem Layout findet, was wahrscheinlich bedeutet, dass R.layout.activity_main nicht wie erwartet aufgebläht wird.

Passt dies zu dem, was Sie sehen, wenn Sie den Debugger onCreate aufrufen?

Verwandte Themen