Как отобразить список в фрагменте [дубликат]

После Какие артефакты следует использовать для JAXB RI в моем проекте Maven? в Maven, вы можете использовать такой профиль, как:


    java-9
    
        9
    
    
        
            org.glassfish.jaxb
            jaxb-runtime
            2.3.0
        
        
            javax.activation
            activation
            1.1.1
        
    
 

Дерево зависимостей показывает:

[INFO] +- org.glassfish.jaxb:jaxb-runtime:jar:2.3.0:compile
[INFO] |  +- org.glassfish.jaxb:jaxb-core:jar:2.3.0:compile
[INFO] |  |  +- javax.xml.bind:jaxb-api:jar:2.3.0:compile
[INFO] |  |  +- org.glassfish.jaxb:txw2:jar:2.3.0:compile
[INFO] |  |  \- com.sun.istack:istack-commons-runtime:jar:3.0.5:compile
[INFO] |  +- org.jvnet.staxex:stax-ex:jar:1.7.8:compile
[INFO] |  \- com.sun.xml.fastinfoset:FastInfoset:jar:1.2.13:compile
[INFO] \- javax.activation:activation:jar:1.1.1:compile

Чтобы использовать это в Eclipse, скажем, Oxygen.3a Release (4.7.3a) или позже, Ctrl-Alt-P или щелкните правой кнопкой мыши проект, Maven, затем выберите профиль.

31
задан yadav_vi 6 June 2016 в 16:02
поделиться

6 ответов

Единственными причинами getView не называются:

  1. getCount возвращает 0.
  2. , вы забыли называть setAdapter на ListView.
  3. Если видимость ListView 's (видимость контейнера) равна GONE. Благодаря @ TaynãBonaldo для ценного ввода.
  4. ListView не привязан к какому-либо макету видового экрана. То есть, mListView = new ListView(...) используется без myLayout.addView(mListView).

В onPostExcute после создания нового экземпляра CarListAdapter я предлагаю вам обновить новый экземпляр до ваш ListView. Действительно, вам нужно снова позвонить

 mList.setAdapter(adapter);

Изменить: setAdapter должен всегда вызываться в потоке ui, чтобы избежать неожиданного поведения

Edit2:

То же самое относится к RecyclerView. Убедитесь, что

  • getItemCount возвращает значение больше, чем 0 (обычно размер набора данных)
  • должны быть вызваны как setLayoutManager, так и setAdapter на UI Thread
  • Видимость виджета должна быть установлена ​​на VISIBLE
139
ответ дан Mike M. 26 August 2018 в 09:44
поделиться

Что вы делали, это

В вашем адаптере

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

0
ответ дан Ameer Moaaviah 26 August 2018 в 09:44
поделиться

У меня была та же проблема. И после того, как все подсказки выше моего getView все еще не вызывались. Поэтому я попытался удалить ScrollView, который использовался вне ListView. Тогда getView работал хорошо. Просто добавьте еще одну возможность. Я надеюсь кому-то помочь.

0
ответ дан DaniloLM 26 August 2018 в 09:44
поделиться

У меня возникла аналогичная проблема. Чтобы решить эту проблему, выполните простую работу:

В вашем 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);
    }
});

Надеюсь, это поможет другим, столкнувшимся с подобной проблемой

3
ответ дан Gaurav Srivastava 26 August 2018 в 09:44
поделиться

вы должны убедиться, что в списке есть элементы, которые могут иметь ошибку при добавлении элементов в ваш список. Чтобы проверить, используйте метод:

adapter.getCount();
5
ответ дан Kushal 26 August 2018 в 09:44
поделиться

В конструкторе отсутствует суперкласс. См. Мой пример ниже:

public AppDataAdapter(Activity a, int textViewResourceId, ArrayList<AppData> entries) {
    super(a, textViewResourceId, entries);
    this.entries = entries;
    this.activity = a;
}
0
ответ дан o0rebelious0o 26 August 2018 в 09:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: