0

我对这段代码有疑问:

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"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/main_background"
android:orientation="vertical" >


</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)

仅当我尝试向左滑动时才会发生此错误。

谁能帮我 ?我迷路了

4

1 回答 1

2

count == 3 --> 位置:0、1、2 ...在您的开关盒上,您有 1、2 和 3...

删除 3 并添加 case 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;
    }
于 2013-03-25T11:16:34.880 回答