Проблема с AdapterView и addView

Я хочу, чтобы класс ниже отображал некоторые текстовые изображения / кнопки / spinners, а также ListView, содержащий проанализированные данные. Однако listview / adapter / addview вызывают некоторые проблемы. Вот ошибка, которую я получаю:

Java.lang.UnsupportedOperationException: addView (View, LayoutParams) не поддерживается в AdapterView

Я чувствую, что это связано с моими файлами xml, но Im не слишком уверен. Вот мой код:

public class StatisticsScreen extends ListActivity{ private List<Message> messages; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.statisticsscreen); loadFeed(); //other textviews and listeners added } private void loadFeed() { try{ BaseFeedParser parser = new BaseFeedParser(); messages = parser.parse(); List<String> titles = new ArrayList<String>(messages.size()); for (Message msg : messages){ titles.add(msg.getTitle()); } ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.xmldatarow,titles); this.setListAdapter(adapter); } catch (Throwable t){ Log.e("AndroidNews",t.getMessage(),t); } } 

Мой статистический экран xml:

 <ListView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:id="@+id/statsviewlayout" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@color/black"> //other layouts/textviews/buttons added <include layout="@layout/xmllayout" android:id="@+id/xmllist" /> </LinearLayout> </ListView> 

Xmllayout xml:

  <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content"> <ListView android:id="@+id/xmllist" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout> 

Xmldatarow – это простой текстовый файл.

РЕДАКТИРОВАТЬ:

Хорошо, поэтому обновил некоторые файлы, и я получаю ошибку исключения во время выполнения:

В вашем контенте должен быть ListView, чей атрибут «android.R.id.list»

Вот обновленные файлы:

класс:

 setContentView(R.layout.statisticsscreen); loadFeed(); getListView().addHeaderView(View.inflate(this, R.layout.xmllayout, null)); private void loadFeed() { try{ BaseFeedParser parser = new BaseFeedParser(); messages = parser.parse(); List<String> titles = new ArrayList<String>(messages.size()); for (Message msg : messages){ titles.add(msg.getDate()); } ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.xmldatarow,titles); this.setListAdapter(adapter); } catch (Throwable t){ Log.e("AndroidNews",t.getMessage(),t); } } 

У моего statsscreenlayout stil есть все линейные расписания с текстовыми изображениями и т. Д., И я удалил это из него:

 <include layout="@layout/xmllayout" android:id="@+id/xmllist" /> 

Тогда мои другие два макета – это простой текст (xmldatarow) и listview (xmllayout). Так что просто для того, чтобы уточнить, в моем statsscreenlayout нет списка или любого «включить».

Любой совет? благодаря

Вы не можете раздувать представления непосредственно в виде списка. Я думаю, вы можете искать методы addHeaderView или addFooterView . Обязательно вызовите их перед вызовом setListAdapter .

РЕДАКТИРОВАТЬ: полностью statsviewlayout это. Предполагая, что вы хотите, чтобы statsviewlayout в верхней части списка: Не помещайте LinearLayout прямо в элемент ListViews ( ListViews не должен иметь детей). Поместите его в отдельный XML-файл (скажем, statsview.xml ) и сделайте что-то подобное в своем onCreate:

 getListView().addHeaderView(View.inflate(this, R.layout.statsview.xml, null)); 

Также см. Эту старую андроид-новичку .