Вы не сможете «вернуть представление списка», используя этот код, но вы можете создать свой собственный подкласс представления списка, который затем можно будет вернуть, следуя тем же методам:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView listView1 = (ListView) findViewById(R.id.listView1);
ArrayList<String> gameList = new ArrayList<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 = new String[gameList.size()];
gameList.toArray(items);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.some_list_item_view, items);
listView1.setAdapter(adapter);
}
В конечном итоге все сводится к настройке адаптера списка для списка. Если вам нужно создать собственный адаптер списка, вы можете создать подкласс и реализовать ListAdapter для привязки данных других типов объектов, но уже есть предопределенный адаптер (ArrayAdapter) для обработки простых наборов строк для привязки данных ListView / ListActivity.
ОБНОВЛЕНИЕ - Автор запрашивал дополнительные детали реализации:
Дано:
public class GameMeta {
private String m_title;
private java.util.Date m_releaseDate;
public GameMeta() {
}
public String getTitle(){
return m_title;
}
public void setTitle(String value) {
m_title = value;
}
public java.util.Date getReleaseDate(){
return m_releaseDate;
}
public void setReleaseDate(java.util.Date releaseDate){
m_releaseDate = releaseDate;
}
}
Вы можете создать адаптер:
public class GamesMetaAdapter implements Adapter extends ListAdapter {
private ArrayList<GameMeta> m_list = new ArrayList<GameMeta>();
private Context m_context = null;
public GamesMetaAdapter(Context context) {
m_context = context;
}
@Override
public int getCount(){
return m_list.size();
}
@Override
public Object getItem(int position){
if(position < m_list.size()){
return m_list.getAt(position);
}
return null;
}
@Override
public long getItemId(int position) {
return (long)position;
}
@Override
public int getItemViewType(int position) {
return IGNORE_ITEM_VIEW_TYPE;
}
@Override
public View getView (int position, View convertView, ViewGroup parent) {
TextView simpleView = new TextView(this.m_context);
String viewText = 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;
}
@Override
public int getViewTypeCount() {
return 1;
}
@Override
public boolean hasStableIds(){
return false;
}
@Override
public boolean isEmpty() {
return m_list.size() == 0;
}
@Override
public void registerDataSetObserver (DataSetObserver observer) {
}
@Override
public void unregisterDataSetObserver (DataSetObserver observer) {
}
/* LIST ADAPTER MEMBERS */
@Override
public boolean areAllItemsEnabled() {
return true;
}
@Override
public boolean isEnabled(int position) {
return true;
}
}
У меня нет здесь компилятора Java, поэтому, пожалуйста, не звоните мне, если это не просто скопировать / вставить прямо в ваш проект, но там должно быть намного севернее 90%.
Удачного кодирования.
B