
- Data to be inserted is first stored in object.
- ArrayList stores references of those objects in indexed approach from 0 to (n-1).
- Adapter contains processing API called getView().
- Adapter needs three arguments : Reference of Activity, Reference of list_item, Reference of data structure eg. ArrayList.
- getView() takes the object one by one, binds the data to the list_item and also list_item to list view.
Example :
In NewsAggregator.java , populate arraylist with objects and set adapter on ListView as :
listView=(ListView)findViewById(R.id.listview); list=new ArrayList<>(); //Adding object references to ArrayList list.add(new NewsObjects(R.drawable.tribune,"English","The Tribune","http://www.tribuneindia.com/mobi/")); list.add(new NewsObjects(R.drawable.dainikbhaskar,"Hindi","Dainik Bhaskar","http://m.bhaskar.com")); list.add(new NewsObjects(R.drawable.kerelaexpress,"Malayalam","Kerala Express","http://www.keralax.com")); list.add(new NewsObjects(R.drawable.lokmatmarathi,"Marathi","Lokmat","http://www.lokmat.com")); //Rest of the objects adapter=new NewsAdapter(NewsAggregator.this,R.layout.list_item,list); //Initializing Adapter listView.setAdapter(adapter); //Setting adapter on List View
NewsObjects.java
public class NewsObjects {
int icon;
String language,newspaper,url;
public NewsObjects(int icon, String language, String newspaper, String url) {
this.icon = icon;
this.language = language;
this.newspaper = newspaper;
this.url = url;
}
//getters and setters
}
NewsAdapter.java
//constructor here
//getView()
public View getView(int position, View convertView, ViewGroup parent) {
View item;
item= LayoutInflater.from(cxt).inflate(res,parent,false);
ImageView icon=(ImageView)item.findViewById(R.id.imageViewIcon);
TextView language=(TextView)item.findViewById(R.id.textViewlanguage);
TextView newspaper=(TextView)item.findViewById(R.id.textViewNewspaper);
NewsObjects ob=list.get(position);
icon.setBackgroundResource(ob.getIcon());
language.setText(ob.getLanguage());
newspaper.setText(ob.getNewspaper());
return item;
}


