Reputation: 121
i am create swip view for images using pager adapter but have face some problem The method setAdapter(ListAdapter) in the type GridView is not applicable for the arguments (ImageAdapter) i am type cast to list view but logcat show error in below class i found error in gridView.setAdapter(new ImageAdapter(getApplicationContext())); pls give me helpful solution.
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);
}
});
}
}
imageadapter***********************************
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);
}
}
Upvotes: 0
Views: 2448
Reputation: 11131
GridView expects a Adpater which must be sub class of ListAdapter class. but your ImageAdapter class extends PagerAdapter which is not a sub class for ListAdapter.
try extending ListAdapter sub classes like BaseAdapter instead of PagerAdapter
Upvotes: 3