I have adapter and retrieving the details into listview
private class ChatDisplayAdapter extends BaseAdapter {
private LayoutInflater mInflater;
public ChatDisplayAdapter() {
mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
private class ViewHolder {
TextView chatTitle;
TextView chatPlace;
TextView chatDate;
TextView notificationCount;
}
@Override
public int getCount() {
return groupEventMoList.size();
}
@Override
public Object getItem(int position) {
return groupEventMoList.get(position);
}
@Override
public long getItemId(int id) {
// for sqllite management
return 0;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.chatwindow, null);
holder = new ViewHolder();
convertView.setClickable(true);
convertView.setFocusable(true);
holder.chatTitle = (TextView) convertView.findViewById(R.id.chat_title);
holder.chatPlace = (TextView) convertView.findViewById(R.id.event_place);
holder.chatDate = (TextView) convertView.findViewById(R.id.event_date);
holder.notificationCount = (TextView) convertView.findViewById(R.id.notification_count);
holder.chatPlace.setTextColor(getResources().getColor(R.color.black));
holder.chatDate.setTextColor(getResources().getColor(R.color.black));
holder.chatTitle.setTextColor(getResources().getColor(R.color.black));
holder.notificationCount.setTextColor(getResources().getColor(R.color.black));
convertView.setTag(holder);
//Log.e("view", "holder" + convertView.getTag());
}
else {
// Log.e("view", "holder" + convertView.getTag());
holder = (ViewHolder) convertView.getTag();
// Log.e("view", "holder" + holder);
}
// holder = (ViewHolder) convertView.getTag();
convertView.setTag(groupEventMoList.get(position));
holder.chatPlace.setText(groupEventMoList.get(position).getPlace());
holder.notificationCount.setText(Integer.toString(groupEventMoList.get(position).getCount()));
holder.chatTitle.setText(groupEventMoList.get(position).getText());
String actualDate = groupEventMoList.get(position).getEventDate();
Log.e("view", "notification" + groupEventMoList.get(position).getCount());
Log.e("view", "after notification position" + position);
try {
//date format changed here
Date formatDate = new SimpleDateFormat("yyyy-MM-dd").parse(actualDate);
dateResult = new SimpleDateFormat("dd-MM-yyyy").format(formatDate);
holder.chatDate.setText(dateResult);
} catch (ParseException e) {
e.printStackTrace();
}
Log.e("view", "position" + groupEventMoList.get(position).getPlace());
final EventMO eventMO = groupEventMoList.get(position);
convertView.setTag(position);
View v = convertView.findViewById(R.id.chat_window_single);
v.getRootView().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i("position", v.getTag().toString());
Intent groupAct = new Intent(context, GroupChatActivity.class);
groupAct.putExtra("eventMo", eventMO);
groupAct.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(groupAct);
}
});
return convertView;
}
}
}
this is my log
12-30 17:19:54.324 17652-17652/com.ringee.app E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.ClassCastException: java.lang.Integer cannot be cast to com.ringee.app.GroupChatFragment$ChatDisplayAdapter$ViewHolder
at com.ringee.app.GroupChatFragment$ChatDisplayAdapter.getView(GroupChatFragment.java:345)
I have the error exactly at else part. how to fix this issue
I am getting error near this line : holder = (ViewHolder) convertView.getTag(); and holder returns as 0