How To Load These Elements To Populate A List In Android?
Solution 1:
You won't be able to "return a list view" using this code, but you could create your own list view sub class which you could then return, following the same techniques:
@OverridepublicvoidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView listView1 = (ListView) findViewById(R.id.listView1);
ArrayList<String> gameList = newArrayList<String>();
// Iterator over those elements ListIterator<Element> postIt = games.listIterator();
while (postIt.hasNext()) {
// Add the game text to the ArrayList
gameList.add(postIt.next().text());
}
String[] items = newString[gameList.size()];
gameList.toArray(items);
ArrayAdapter<String> adapter = newArrayAdapter<String>(this,
android.R.layout.some_list_item_view, items);
listView1.setAdapter(adapter);
}
Ultimately what it comes down to is setting the list adapter for the list. If you need to create your own list adapter you can subclass and implement ListAdapter to databind other object types, but there's already a predefined adapter (ArrayAdapter) for handling simple string sets for ListView/ListActivity databinding.
UPDATE - Poster requested additional implementation details:
Given:
publicclassGameMeta {
privateString m_title;
private java.util.Date m_releaseDate;
publicGameMeta() {
}
publicStringgetTitle(){
return m_title;
}
publicvoidsetTitle(String value) {
m_title = value;
}
public java.util.DategetReleaseDate(){
return m_releaseDate;
}
publicvoidsetReleaseDate(java.util.Date releaseDate){
m_releaseDate = releaseDate;
}
}
You might create the adapter:
publicclassGamesMetaAdapterimplementsAdapterextendsListAdapter {
private ArrayList<GameMeta> m_list = newArrayList<GameMeta>();
privateContextm_context=null;
publicGamesMetaAdapter(Context context) {
m_context = context;
}
@OverridepublicintgetCount(){
return m_list.size();
}
@Overridepublic Object getItem(int position){
if(position < m_list.size()){
return m_list.getAt(position);
}
returnnull;
}
@OverridepubliclonggetItemId(int position) {
return (long)position;
}
@OverridepublicintgetItemViewType(int position) {
return IGNORE_ITEM_VIEW_TYPE;
}
@Overridepublic View getView(int position, View convertView, ViewGroup parent) {
TextViewsimpleView=newTextView(this.m_context);
StringviewText=this.m_items[position].getTitle() + ", Released " + this.m_items[position].getReleaseDate().toString();
simpleView.setText(this.m_items[position].getTitle());
if(TextView.class.isInstance(convertView)) {
convertView = simpleView;
}
return simpleView;
}
@OverridepublicintgetViewTypeCount() {
return1;
}
@OverridepublicbooleanhasStableIds(){
returnfalse;
}
@OverridepublicbooleanisEmpty() {
return m_list.size() == 0;
}
@OverridepublicvoidregisterDataSetObserver(DataSetObserver observer) {
}
@OverridepublicvoidunregisterDataSetObserver(DataSetObserver observer) {
}
/* LIST ADAPTER MEMBERS */@OverridepublicbooleanareAllItemsEnabled() {
returntrue;
}
@OverridepublicbooleanisEnabled(int position) {
returntrue;
}
}
I don't have a Java compiler here, so please don't ding me if this doesn't just copy/paste right into your project, but it should be well north of 90% there.
Happy coding.
B
Solution 2:
This should gather the titles and release dates. Which image did you also want?
// Get all td's that are a child of a row - each game has 4 of theseElementsgames= doc.select("tr > td.indexList1, tr > td.indexList2");
// Iterator over those elements
ListIterator<Element> gameIt = games.listIterator();
while (gameIt.hasNext()) {
// Get the title of the gameElementtitle= gameIt.next();
System.out.println(title.text());
// Unneeded elementsElementplatform= gameIt.next();
Elementgenre= gameIt.next();
// Get the release date of the gameElementrelease= gameIt.next();
System.out.println(release.text() + "\n@@@@@@");
}
Post a Comment for "How To Load These Elements To Populate A List In Android?"