1

我正在开发一个 Android 应用程序,我正在使用 .setAdapter 命令,并且在它下面出现了红色曲线。Eclipse 告诉我这一点。“ViewPager 类型中的方法 setAdapter(PagerAdapter) 不适用于参数 (Upperbody.MyPagerAdapter)”

具体就在这里;

myPager.setAdapter(adapter); 

这是我的代码;

package com.example.gymbuddy; 

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

public class Upperbody extends Activity { 

   @Override 
   public void onCreate(Bundle savedInstanceState) { 
   super.onCreate(savedInstanceState); 
   setContentView(R.layout.activity_upperbody); 

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

   public class MyPagerAdapter extends Activity { 

    public int getCount() { 
        return 9; 
    } 

    public Object instantiateItem(View collection, int position) { 

        LayoutInflater inflater = (LayoutInflater) collection.getContext() 
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

        int resId = 0; 
        switch (position) { 
        case 0: 
            resId = R.layout.upper0; 
            break; 
        case 1: 
            resId = R.layout.upper1; 
            break; 
        case 2: 
            resId = R.layout.upper2; 
            break; 
        case 3: 
            resId = R.layout.upper3; 
            break; 
        case 4: 
            resId = R.layout.upper4; 
            break; 
        case 5: 
           resId = R.layout.upper5; 
           break; 
        case 6: 
           resId = R.layout.upper6; 
           break; 
        case 7: 
           resId = R.layout.upper7; 
           break; 
        case 8: 
           resId = R.layout.upper8; 
           break; } 

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

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

        return view; } 

    public void destroyItem(View arg0, int arg1, Object arg2) { 
        ((ViewPager) arg0).removeView((View) arg2); } 

    public boolean isViewFromObject(View arg0, Object arg1) { 
        return arg0 == ((View) arg1); } 

    public Parcelable saveState() { 
        return null; } 

   } 

} 
4

3 回答 3

1

我认为您的问题只是您没有使 MyPageAdapter 扩展 PageAdapter。相反,它正在扩展 Activity。

于 2012-09-13T02:33:56.963 回答
1

MyPagerAdapter不应该实现PagerAdapter一个活动。

请检查此链接

于 2012-09-13T08:29:02.337 回答
0

您的 MyPagerAdapter 需要是 PagerAdapter 的子类,而不是活动。

改变

public class MyPagerAdapter extends Activity { 

public class MyPagerAdapter extends PagerAdapter { 
于 2012-09-13T02:39:23.463 回答