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

MyPagerAdapterPagerAdapterアクティビティを実装しないでください。

このリンクを確認してください。

于 2012-09-13T08:29:02.337 に答える