Вы можете использовать опцию «-add-modules = java.xml.bind» для добавления модуля привязки xml в среду выполнения JVM.
Например: «java --add-modules = java.xml.bind XmlTestClass "
Единственными причинами getView
не называются:
getCount
возвращает 0. setAdapter
на ListView
. ListView
's (видимость контейнера) равна GONE
. Благодаря @ TaynãBonaldo для ценного ввода. ListView
не привязан к какому-либо макету видового экрана. То есть, mListView = new ListView(...)
используется без myLayout.addView(mListView)
. В onPostExcute
после создания нового экземпляра CarListAdapter
я предлагаю вам обновить новый экземпляр до ваш ListView
. Действительно, вам нужно снова позвонить
mList.setAdapter(adapter);
Изменить: setAdapter
должен всегда вызываться в потоке ui, чтобы избежать неожиданного поведения
Edit2:
То же самое относится к RecyclerView
. Убедитесь, что
getItemCount
возвращает значение больше, чем 0
(обычно размер набора данных) setLayoutManager
, так и setAdapter
на UI Thread
VISIBLE
Что вы делали, это
В вашем адаптере
public CarListAdapter(Context context , ArrayList<CarDetail> items) {
this.context = context;
this.items = items;
}
в вашем фрагменте
adapter = new CarListAdapter(getActivity(),ServiceCarListFragment.this.carDetailList);
Надеюсь, вы будете использовать FragmentActivity
Вам нужно позвонить
adapter = new CarListAdapter(YOUR_ACTIVITY_CONTEXT, carDetailList);
, где YOUR_ACTIVITY_CONTEXT
будет вашим FragmentActivity
У меня была та же проблема. И после того, как все подсказки выше моего getView все еще не вызывались. Поэтому я попытался удалить ScrollView, который использовался вне ListView. Тогда getView работал хорошо. Просто добавьте еще одну возможность. Я надеюсь кому-то помочь.
У меня возникла аналогичная проблема. Чтобы решить эту проблему, выполните простую работу:
В вашем onCreateView вам придется подождать до создания представления. Поэтому измените свои строки следующим образом:
mList = (ListView)v.findViewById(R.id.list);
mList.setAdapter(adapter);
ИЗМЕНИТЬ ВЫШЕ ДВУХ ЛИНИЙ В:
mList = (ListView)v.findViewById(R.id.list);
mList.post(new Runnable() {
public void run() {
mList.setAdapter(adapter);
}
});
Надеюсь, это поможет другим, столкнувшимся с подобной проблемой
вы должны убедиться, что в списке есть элементы, которые могут иметь ошибку при добавлении элементов в ваш список. Чтобы проверить, используйте метод:
adapter.getCount();
В конструкторе отсутствует суперкласс. См. Мой пример ниже:
public AppDataAdapter(Activity a, int textViewResourceId, ArrayList<AppData> entries) {
super(a, textViewResourceId, entries);
this.entries = entries;
this.activity = a;
}