2013-03-25 46 views
0

我有truble與此代碼:的Android ViewPager錯誤

package com.app.BoomBase; 

import android.app.Activity; 
import android.content.Context; 
import android.os.Bundle; 
import android.os.Parcelable; 
import android.support.v4.view.PagerAdapter; 
import android.support.v4.view.ViewPager; 
import android.view.LayoutInflater; 
import android.view.View; 

public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    MyPagerAdapter adapter = new MyPagerAdapter(); 
    ViewPager myPager = (ViewPager) findViewById(R.id.ViewPager); 
    myPager.setAdapter(adapter); 
    myPager.setCurrentItem(2); 
} 

private class MyPagerAdapter extends PagerAdapter { 
    public int getCount() { 
     return 3; 
} 

public Object instantiateItem(View collection, int position) { 
    LayoutInflater inflater = (LayoutInflater) collection.getContext() 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

     int resId = 0; 
     switch (position) 
     { 
     case 1: 
       resId = R.layout.beginner; 
       break; 
     case 2: 
       resId = R.layout.activity_main; 
       break; 
     case 3: 
       resId = R.layout.advanced; 
       break; 
     } 

     View view = inflater.inflate(resId, null); 

     ((ViewPager) collection).addView(view, 0); 

     return view; 
} 
@Override 
public void destroyItem(View arg0, int arg1, Object arg2) { 
    ((ViewPager) arg0).removeView((View) arg2); 
} 
@Override 
public boolean isViewFromObject(View arg0, Object arg1) { 
    return arg0 == ((View) arg1); 
} 
@Override 
public Parcelable saveState() { 
    return null; 
} 
} 
} 

和XML文件:

主營:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical"> 

<android.support.v4.view.ViewPager 
    android:id="@+id/ViewPager" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    /> 

</LinearLayout> 

中東:

初學者:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@drawable/background" > 

<ImageButton 
    android:id="@+id/ibWeather" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentTop="true" 
    android:layout_marginRight="68dp" 
    android:layout_marginTop="42dp" 
    android:background="@null" 
    android:src="@drawable/weather_zero_transparrent" /> 

</RelativeLayout> 

和先進:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@drawable/background">  

的問題是,我不斷收到這樣的錯誤:

E/MessageQueue-JNI(20322): Exception in MessageQueue callback: handleReceiveCallback 

E/MessageQueue-JNI(20322): android.content.res.Resources$NotFoundException: Resource ID #0x1 

E/MessageQueue-JNI(20322): at android.content.res.Resources.getValue(Resources.java:1026) 

E/MessageQueue-JNI(20322): at android.content.res.Resources.loadXmlResourceParser(Resources.java:2131) 

E/MessageQueue-JNI(20322): at android.content.res.Resources.getLayout(Resources.java:865) 

E/MessageQueue-JNI(20322): at android.view.LayoutInflater.inflate(LayoutInflater.java:394) 

E/MessageQueue-JNI(20322): at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 

E/MessageQueue-JNI(20322): at com.app.BoomBase.MainActivity$MyPagerAdapter.instantiateItem(MainActivity.java:47) 

E/MessageQueue-JNI(20322): at android.support.v4.view.PagerAdapter.instantiateItem(PagerAdapter.java:110) 

E/MessageQueue-JNI(20322): at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:800) 

E/MessageQueue-JNI(20322): at android.support.v4.view.ViewPager.populate(ViewPager.java:961) 

E/MessageQueue-JNI(20322): at android.support.v4.view.ViewPager.populate(ViewPager.java:880) 

E/MessageQueue-JNI(20322): at android.support.v4.view.ViewPager$3.run(ViewPager.java:238) 

E/MessageQueue-JNI(20322): at android.support.v4.view.ViewPager.completeScroll(ViewPager.java:1696) 

E/MessageQueue-JNI(20322): at android.support.v4.view.ViewPager.onInterceptTouchEvent(ViewPager.java:1829) 

E/MessageQueue-JNI(20322): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2060) 

E/MessageQueue-JNI(20322): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2418) 

E/MessageQueue-JNI(20322): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2119) 

E/MessageQueue-JNI(20322): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2418) 

E/MessageQueue-JNI(20322): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2119) 

E/MessageQueue-JNI(20322): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2418) 

E/MessageQueue-JNI(20322): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2119) 

E/MessageQueue-JNI(20322): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2418) 

E/MessageQueue-JNI(20322): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2119) 

E/MessageQueue-JNI(20322): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2139) 

E/MessageQueue-JNI(20322): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1476) 

E/MessageQueue-JNI(20322): at android.app.Activity.dispatchTouchEvent(Activity.java:2487) 

E/MessageQueue-JNI(20322): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2087) 

E/MessageQueue-JNI(20322): at android.view.View.dispatchPointerEvent(View.java:7535) 

E/MessageQueue-JNI(20322): at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:3415) 

E/MessageQueue-JNI(20322): at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3347) 

E/MessageQueue-JNI(20322): at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4456) 

E/MessageQueue-JNI(20322): at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4434) 

E/MessageQueue-JNI(20322): at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:4538) 

E/MessageQueue-JNI(20322): at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:171) 

E/MessageQueue-JNI(20322): at android.os.MessageQueue.nativePollOnce(Native Method) 

E/MessageQueue-JNI(20322): at android.os.MessageQueue.next(MessageQueue.java:125) 

E/MessageQueue-JNI(20322): at android.os.Looper.loop(Looper.java:124) 

E/MessageQueue-JNI(20322): at android.app.ActivityThread.main(ActivityThread.java:4921) 

E/MessageQueue-JNI(20322): at java.lang.reflect.Method.invokeNative(Native Method) 

E/MessageQueue-JNI(20322): at java.lang.reflect.Method.invoke(Method.java:511) 

E/MessageQueue-JNI(20322): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027) 

E/MessageQueue-JNI(20322): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794) 

E/MessageQueue-JNI(20322): at dalvik.system.NativeStart.main(Native Method) 

此錯誤只有當我嘗試滑動到下發生剩下。

任何人都可以幫助我嗎?我迷路了

回答

2

計數== 3 - >的位置:0,1,2 ...在你開關的情況下,你有1,2和3 ...

取出3,並添加0的情況下;-)

爲您計數:

public int getCount() { 
    return 3; 
} 

那麼你的開關情況必須是這樣的:

int resId = 0; 
    switch (position) 
    { 
    case 0: 
      resId = R.layout.beginner; 
      break; 
    case 1: 
      resId = R.layout.activity_main; 
      break; 
    case 2: 
      resId = R.layout.advanced; 
      break; 
    } 
+0

天上!!!!!!!!!!! !!!!!!!!!!!非常感謝!你剛剛救了我的一天! – Lasse 2013-03-25 11:18:45