Android : Listview is not receive notification when adapter data changed in fragment

on Friday, July 25, 2014


Listview data is not refreshing after array list data and adapter data changed.


My code :



listView = (ListView) detailsView.findViewById(R.id.settings_fragment_list);
ticketCommentsPriorityData.clear();

for (int i = 0; i <mTicketData.size(); i++) {
totalTicketsData =mTicketData.get(i).getTotalTicketsData();

for (int j = 0; j <mTicketData.get(i).getTotalTicketsData().size(); j++) {

if (ticketID.equalsIgnoreCase(mTicketData.get(i).getTotalTicketsData().get(j).getTicketID())) {
TicketCommentsPriorityData commentsPriorityData = new TicketCommentsPriorityData();
String comment =mTicketData.get(i)
.getTotalTicketsData().get(j).getComments();
String priority =mTicketData.get(i)
.getTotalTicketsData().get(j).getPriority();
commentsPriorityData.setComments(comment);
commentsPriorityData.setPriority(priority);

ticketCommentsPriorityData.add(commentsPriorityData);
}
}
}
}
if (ticketCommentsPriorityData != null
&& ticketCommentsPriorityData.size() > 0) {

detailListAdapter = new TicketDetailListAdapter(getActivity(),
R.layout.ticket_list_items, ticketCommentsPriorityData);


listView.setAdapter(detailListAdapter);

}


Adapter class



public class TicketDetailListAdapter extends ArrayAdapter<TicketCommentsPriorityData> {

Context context;
ArrayList<TicketCommentsPriorityData> ticketData;
LayoutInflater layoutInflater;
int layoutResourceID;

public TicketDetailListAdapter(Context context,int layoutResourceID,
ArrayList<TicketCommentsPriorityData> ticketData) {
// TODO Auto-generated constructor stub
super(context, layoutResourceID, ticketData);
this.context = context;
this.ticketData = ticketData;
this.layoutResourceID = layoutResourceID;
layoutInflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}


@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder viewHolder = null;

if (convertView == null) {
viewHolder = new ViewHolder();
convertView = layoutInflater.inflate(layoutResourceID,
parent, false);

viewHolder.ticketID = (TextView) convertView
.findViewById(R.id.ticket_id);
viewHolder.ticketDate = (TextView) convertView
.findViewById(R.id.ticket_date);

convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}

viewHolder.ticketDate.setText(ticketData.get(position).getComments());
viewHolder.ticketID.setText(ticketData.get(position).getPriority());

return convertView;

}

class ViewHolder {
TextView ticketID;
TextView ticketDate;
}
}


my problem was When I tap on parent list item this listview executes and it display details of parent list item.but here if I tap on first item and it's getting first item details and it's displaying correctly.But,if I tap on another items it's displaying always what ever item details comes first into details list it always displaying that data only.


Any one give me a solution.


0 comments:

Post a Comment