2015-12-27 5 views
0

Я пытаюсь добавить некоторые элементы в ListView. Когда я разворачиваю макет (startActivity), я вызываю класс List.Установка адаптера в ListView Android Studio

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_listing); 
     ListView lv = (ListView) findViewById(R.id.listViewLIST); 
     String[] items = {"Item1", "Item2", "Item3", "Item4"}; 
     ArrayList<String> arrayList = new ArrayList<>(Arrays.asList(items)); 
     ArrayAdapter<String> adapter = new ArrayAdapter<>(this, R.layout.activity_listing, R.id.listViewLIST, arrayList); 
     lv.setAdapter(adapter); 
} 

Я прочитал некоторые учебники следуют каждый шаг, но приложение перестает работать всегда в последней строке кода

lv.setAdapter(adapter); 

Что мне не хватает?

Редактировать 27.12.2015 activity_listing.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools"   android:layout_height="match_parent" android:fitsSystemWindows="true" 
    tools:context="cigarkings.cigarking.Listing"> 

    <ListView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/listViewLIST" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 
     android:layout_marginTop="51dp" /> 

    <SearchView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/searchView" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_alignRight="@+id/listView" 
     android:layout_alignEnd="@+id/listView" /> 

    <include layout="@layout/content_listing" /> 

</android.support.design.widget.CoordinatorLayout> 
+1

отправьте сообщение «activity_listing.xml» – 0X0nosugar

+1

также ловушка stacktrace, когда он перестает работать, будет полезно узнать, что вызывает остановку приложения. – Jahnold

+0

Я добавил Activity_listing.xml .... logcat stacktrace слишком велик для публикации это здесь ... – Archimedes

ответ

0

Предполагая, что отсутствует заявление android:layout_width="match_parent" для координатора Компоновка в качестве типографской ошибки, основная ошибка в настройке адаптера массива.

В заявлении: ArrayAdapter<String> adapter = new ArrayAdapter<>(this, R.layout.activity_listing, R.id.listViewLIST, arrayList); параметров конструктора (второй параметр: R.layout.activity_listing и третий параметр: R.id.listViewLIST) являются incorrect.Array адаптер принимает идентификатор ресурса из TextView в качестве 3-го аргумента, а не из ListView, а идентификатор ресурса макета из макет, содержащий текстовое представление, передается как 2-й аргумент.

Таким образом, одно решение этого заключается в том, чтобы создать отдельный макет XML, содержащий TextView и проходящее идентификатор расположения ресурса в качестве второго аргумента и TextView ид в качестве 3-го аргумента конструктора массива адаптера

0

В первой очереди деятельности листинга не должно быть в этом шаблоне.
Если вы на начальной стадии, то сначала попробуйте это Tutorial ...
Лучшее объяснение для начинающих.
Затем вы должны реализовать пользовательский listView, используя класс BaseAdaptor и собственный XML.

Смежные вопросы