【问题标题】:error The method setAdapter(ListAdapter) in the type GridView is not applicable for the arguments (ImageAdapter)错误GridView类型中的方法setAdapter(ListAdapter)不适用于参数(ImageAdapter)
【发布时间】:2013-11-29 08:02:41
【问题描述】:

我正在使用寻呼机适配器为图像创建 swip 视图,但遇到了一些问题 GridView 类型中的方法 setAdapter(ListAdapter) 不适用于参数 (ImageAdapter) 我是类型转换为列表视图但 logcat 在下面显示错误类我在 gridView.setAdapter(new ImageAdapter(getApplicationContext())) 中发现错误;请给我有用的解决方案。

public class AndroidGridLayoutActivity extends Activity {
String sp_items[] = new String[] { "TargetMovie", "About Us", "Like-Us",
        "Other"

};
Spinner spinner;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.grid_layout);
    GridView gridView = (GridView) findViewById(R.id.grid_view);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    gridView.setAdapter(new ImageAdapter(getApplicationContext()));

    gridView.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View v,
                int position, long id) {
            Intent i = new Intent(getApplicationContext(), FullImageActivity.class);
            i.putExtra("id", position);
            startActivity(i);

        }
    });
}

}

图像适配器***********************************

public class ImageAdapter extends PagerAdapter {
private Context mContext;

ImageView imageView;
private Context context;
// Keep all Images in array
public Integer[] mThumbIds = { R.drawable.a00, R.drawable.a01, R.drawable.a02, R.drawable.a03,
        R.drawable.a04, R.drawable.a05, R.drawable.a06, R.drawable.a07, R.drawable.a08, R.drawable.a09,R.drawable.a10, R.drawable.a11, R.drawable.a12, R.drawable.a13,
        R.drawable.a14, R.drawable.a15, R.drawable.a16, R.drawable.a17, R.drawable.a18, R.drawable.a19, R.drawable.a20, R.drawable.a21, R.drawable.a22
        , R.drawable.a23, R.drawable.a24, R.drawable.a25, R.drawable.a26, R.drawable.a27, R.drawable.a28, R.drawable.a29, R.drawable.a30
};

// Constructor
public ImageAdapter(Context c) {
    mContext = c;
}

@Override
public int getCount() {
    return mThumbIds.length;
}

public Object getItem(int position) {
    return mThumbIds[position];
}

public long getItemId(int position) {
    return 0;
}

public View getView(int position, View convertView, ViewGroup parent) {
    ImageView imageView = new ImageView(mContext);

    if (convertView == null) {
        imageView = new ImageView(mContext);
        imageView.setLayoutParams(new GridView.LayoutParams(250, 300));
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        imageView.setPadding(4, 4, 4, 4);
    } else {
        imageView = (ImageView) convertView;
    }

    imageView.setImageResource(mThumbIds[position]);

    return imageView;
}


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



 @Override
    public Object instantiateItem(ViewGroup container, int position) {

      ImageView imageView = new ImageView(context);

      imageView.setPadding(4, 4, 4, 4);
      imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
      imageView.setImageResource(mThumbIds[position]);
      ((ViewPager) container).addView(imageView, 0);
      return imageView;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
      ((ViewPager) container).removeView((ImageView) object);
    }

}

【问题讨论】:

    标签: android android-viewpager


    【解决方案1】:

    GridView 需要一个 Adpater,它必须是 ListAdapter 类的子类。 但是您的 ImageAdapter 类扩展了 PagerAdapter,它不是 ListAdapter 的子类。

    尝试扩展 ListAdapter 子类,例如 BaseAdapter 而不是 PagerAdapter

    【讨论】:

    • 我认为使用 ViewPager 代替 GridView 更适合你
    猜你喜欢
    • 1970-01-01
    • 2020-06-28
    • 2014-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多