i have developed an application that have grid view layout and there are two item main item is image and sub item is text of image so i use custom image adapter class and it implement in main activity but i got error of class cast exception in log cat
my code is here
main class
public class MainActivity extends ActionBarActivity implements AdapterView.OnItemClickListener, AdapterView.OnItemSelectedListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GridView gridView = (GridView) findViewById(R.id.gridView1);
gridView.setAdapter(new ImageAdapter(getApplicationContext()));
gridView.setOnItemClickListener(this);
gridView.setOnItemSelectedListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (id == 0L)
Toast.makeText(getApplicationContext(), "Zero", 1000).show();
if (id == 1L) {
Toast.makeText(getApplicationContext(), "one", 1000).show();
}
if (id == 2L) {
Toast.makeText(getApplicationContext(), "two", 1000).show();
return;
}
if (id == 3L) {
Toast.makeText(getApplicationContext(), "three", 1000).show();
return;
}
if (id == 4L) {
Toast.makeText(getApplicationContext(), "foure", 1000).show();
return;
}
if (id == 9L) {
Toast.makeText(getApplicationContext(), "nine", 1000).show();
return;
}
if (id == 7L) {
Toast.makeText(getApplicationContext(), "seven", 1000).show();
return;
}
if (id == 8L) {
Toast.makeText(getApplicationContext(), "eight", 1000).show();
return;
}
if (id == 6L) {
Toast.makeText(getApplicationContext(), "six", 1000).show();
return;
}
if (id == 5L) {
Toast.makeText(getApplicationContext(), "five", 1000).show();
return;
}
if (id == 11L)
Toast.makeText(getApplicationContext(),"eleven",1000).show();
return;
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
setTitle("Hello world");
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
}
Adapter class
public class ImageAdapter extends BaseAdapter {
private Context mContext;
public ImageAdapter(Context applicationContext) {
this.mContext = applicationContext;
}
@Override
public int getCount() {
return 12;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return position;
}
public int getThumbId(int position) {
switch (position) {
default:
throw new IllegalArgumentException("Error in m-Indicator home UI");
case 0:
return R.drawable.ic_launcher;
case 1:
return R.drawable.ic_launcher;
case 2:
return R.drawable.ic_launcher;
case 3:
return R.drawable.ic_launcher;
case 5:
return R.drawable.ic_launcher;
case 4:
return R.drawable.ic_launcher;
case 6:
return R.drawable.ic_launcher;
case 7:
return R.drawable.ic_launcher;
case 8:
return R.drawable.ic_launcher;
case 9:
return R.drawable.ic_launcher;
case 10:
return R.drawable.ic_launcher;
case 11:
}
return R.drawable.ic_launcher;
}
public String getThumbText(int position) {
switch (position) {
default:
throw new IllegalArgumentException("Error in m-Indicator home UI");
case 0:
return "Railway";
case 1:
return "Bus";
case 2:
return "Auto";
case 3:
return "Taxi";
case 5:
return "Jobs Indicator";
case 4:
return "Express";
case 6:
return "Manoranjan";
case 7:
return "Movies";
case 8:
return "Picnic Spots";
case 9:
return "Rail Alerts";
case 10:
return "Emergency";
case 11:
}
return "About";
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View localView = ((Activity) this.mContext).getLayoutInflater().inflate(R.layout.gridelement, null);
TextView localTextView = (TextView) localView.findViewById(R.id.icon_text);
localTextView.setText(getThumbText(position));
ImageView localImageView = (ImageView) localView.findViewById(R.id.icon_image);
ViewGroup.LayoutParams localLayoutParams = localImageView.getLayoutParams();
localImageView.setImageResource(getThumbId(position));
return localView;
}
}