I have problems with ArrayAdapter because I am using ArrayList of messages and I want to display messages data.
I have problem in getView because I am not sure how to go through ArrayList and show data correctly.
I did like this:
In Activity i have this:
ArrayAdapterItem arrayAdapter = new ArrayAdapterItem(DashboardActivity.this,
R.layout.list_view_row_item, result);
listViewItems.setAdapter(arrayAdapter);
and in class ArrayAdapterItem I have:
public class ArrayAdapterItem extends ArrayAdapter<Message> {
ArrayList<Message> message = new ArrayList<Message>();
Context mcontext;
int layout;
int messageNumber;
public ArrayAdapterItem(Context mcontext, int resource, ArrayList<Message> message) {
super(mcontext, resource);
this.message = message;
this.mcontext = mcontext;
this.layout = resource;
}
@Override
public View getView(int position, View convertView, ViewGroup parent ){
ViewHolderItem viewHolder;
if(convertView==null){
LayoutInflater inflater = ((Activity) mcontext).getLayoutInflater();
convertView = inflater.inflate(layout, parent, false);
viewHolder = new ViewHolderItem();
viewHolder.textViewItem = (TextView) convertView.findViewById(R.id.textViewItem); //ovde ih dodajem
convertView.setTag(viewHolder);
}else {
viewHolder = (ViewHolderItem) convertView.getTag();
}
if(message!=null){
while(messageNumber>0){
messageNumber--;
viewHolder.textViewItem.setText(message.get(messageNumber).getMessageText());
Log.d("Lista AUTORA: ", message.get(messageNumber).getMessageText() + "");
}
}
return convertView;
}
@Override
public int getCount() {
messageNumber = message.size();
return messageNumber;
}
static class ViewHolderItem {
TextView textViewItem;
}
}
I have 3 message texts to display and it does BUT only first one have ok value, and other two has string from the TextView (It's not set). In log everything is fine, all 3 values of messages are ok.
Any ides what I did wrong?