I have a problem when I try to show some data in a layout from an Adapter.
I have a Class where I have some data and a listView, but when I try to change the information of the layout from the ListView adapter, the data doesn't show in the screen, I only see the default layout, but not the real data.
I have this in my adapter:
holderExpanded = new SwipeExpandedHolder();
holderExpanded.number = (TextView) firstLayout.findViewById(R.id.tv_NumberExpanded);
holderExpanded.businessName = (TextView) firstLayout.findViewById(R.id.tv_BusinessNameExpanded);
holderExpanded.number.setText(arrayBusinesses.get(0).getNumber());
holderExpanded.businessName.setText(arrayBusinesses.get(0).getBusinessName());
And the call from my class is:
wipeLayoutListAdapter = new SwipeLayoutListAdapter(this, R.layout.show_multi_ticket_first_item, R.layout.show_multi_ticket_item, listView, array);
How you can see, I pass 2 layouts, because I have a LinearLayout with data and the second is the item layout of the ListView.
I debug the app and I can see the correct data in the "expressions", but not in the layout.
EDIT: My Adapter
public class SwipeLayoutListAdapter extends BaseSwipeAdapter implements OnTouchListener, OnItemClickListener
{
private Context context;
private SwipeExpandedHolder holderExpanded;
private SwipeListViewHolder holderListView;
private ListView listView;
private int firstLayout, layout;
private LayoutInflater inflater;
private ArrayList<MultiTicketBusiness> arrayBusinesses;
....
@Override
public View generateView(int position, ViewGroup parent) {
View v;
SwipeLayout swipeLayout;
if(arrayBusinesses.get(position).isEmpty()){
v = inflater.inflate(R.layout.show_multi_ticket_empty_item, null);
//swipeLayout = (SwipeLayout)v.findViewById(getSwipeLayoutResourceId(position));
} else {
v = inflater.inflate(layout, null);
swipeLayout = (SwipeLayout)v.findViewById(getSwipeLayoutResourceId(position));
swipeLayout.addSwipeListener(new SimpleSwipeListener() {
@Override
public void onOpen(SwipeLayout layout) {
YoYo.with(Techniques.Tada).duration(500).delay(100).playOn(layout.findViewById(R.id.trash));
}
});
}
return v;
}
@Override
public void fillValues(final int position, View convertView) {
if(arrayBusinesses.get(position).isEmpty()){
convertView = inflater.inflate(R.layout.show_multi_ticket_empty_item, null);
initializeListViewHolder(convertView, position, 0);
} else {
//Hide the first element in the list
//if(arrayBusinesses.get(position).isHide()){
if(position == 0){
hideItem(convertView, true);
} else {
View firstView = inflater.inflate(firstLayout, null);
hideItem(convertView, false);
initializeListViewHolder(convertView, position, 1);
initializeExpandedHolder(convertView, firstView);
}
}
}
public void initializeExpandedHolder(View convertView, View firstLayout){
firstLayout = inflater.inflate(R.layout.show_multi_ticket_first_item, null);
holderExpanded = new SwipeExpandedHolder();
holderExpanded.number_ = (TextView) firstLayout.findViewById(R.id.tv_NumberExpanded);
holderExpanded.businessName_ = (TextView) firstLayout.findViewById(R.id.tv_BusinessNameExpanded);
holderExpanded.queueName_ = (TextView) firstLayout.findViewById(R.id.tv_QueueNameExpanded);
holderExpanded.peopleInFront_ = (TextView) firstLayout.findViewById(R.id.tv_PeopleInFrontExpanded);
holderExpanded.estimateTime_ = (TextView) firstLayout.findViewById(R.id.tv_EstimateTimeExpanded);
holderExpanded.removeTurn = (ImageButton) firstLayout.findViewById(R.id.ib_TrashExpanded);
holderExpanded.number_.setText(arrayBusinesses.get(0).getNumber());
holderExpanded.businessName_.setText(arrayBusinesses.get(0).getBusinessName());
holderExpanded.queueName_.setText(arrayBusinesses.get(0).getQueueName());
holderExpanded.peopleInFront_.setText(arrayBusinesses.get(0).getPeopleInFront());
holderExpanded.estimateTime_.setText(arrayBusinesses.get(0).getEstimateTime());
}
public void initializeListViewHolder(View convertView, final int position, int opc){
holderListView = new SwipeListViewHolder();
if(opc == 0){ //When the row doesn't have turn assigned yet.
holderListView.layoutAddTurn = (LinearLayout)convertView.findViewById(R.id.layout_AddTurn);
} else { //The row show a Turn
holderListView.number = (TextView) convertView.findViewById(R.id.tv_NumberItem);
holderListView.businessName = (TextView) convertView.findViewById(R.id.tv_BusinessNameItem);
holderListView.queueName = (TextView) convertView.findViewById(R.id.tv_QueueNameItem);
holderListView.peopleInFront = (TextView) convertView.findViewById(R.id.tv_PeopleInFrontItem);
holderListView.estimateTime = (TextView) convertView.findViewById(R.id.tv_EstimateTimeItem);
holderListView.removeTurn = (ImageButton) convertView.findViewById(R.id.ib_TrashItem);
holderListView.number.setText(arrayBusinesses.get(position).getNumber());
holderListView.businessName.setText(arrayBusinesses.get(position).getBusinessName());
holderListView.queueName.setText(arrayBusinesses.get(position).getQueueName());
holderListView.peopleInFront.setText(arrayBusinesses.get(position).getPeopleInFront());
holderListView.estimateTime.setText(arrayBusinesses.get(position).getEstimateTime());
//Remove turn of the item clicked
holderListView.removeTurn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
////Open the remove layout when click on the imageButton
((SwipeLayout)(listView.getChildAt(position - listView.getFirstVisiblePosition()))).open(true);
}
});
}
convertView.setTag(holderListView);
}
What's the problem?
Thanks in advance ;-)