Пользовательский ArrayAdapter не раздувает [дубликат]

Спецификация [0] текстового модуля CSS определяет свойство text-space-collapse , позволяющее управлять тем, как белое пространство внутри и вокруг элемента обрабатывается.

Итак, в отношении ваш пример, вам просто нужно написать это:

p {
  text-space-collapse: discard;
}

К сожалению, ни один браузер не реализует это свойство еще (по состоянию на сентябрь 2016 года), как упоминалось в комментариях к ответу HBP .

15
задан Tanis.7x 24 June 2013 в 05:50
поделиться

6 ответов

Вы просто забыли предоставить данные конструктору, а затем сделать правильный вызов внутри конструктора:

public ListViewAdapter(Context context,int resource, int textViewResourceId, List<YourObjectType> items) {
    super(context,resource,textViewResourceId, items);
    this.context1 = context;
    // TODO Auto-generated constructor stub
}
49
ответ дан fischer_zh 24 August 2018 в 10:11
поделиться
  adapter.notifyDataSetChanged();
  lv.setAdapter(adapter);

заменить позиции

Layoutinflator=getLayoutInflator();
1
ответ дан Abhinav Singh Maurya 24 August 2018 в 10:11
поделиться

похоже, что вы не указали источник данных для своего адаптера. Источником данных является любая вещь, которая предоставляет данные для отображения, например, для архариста или курсора. Если нет данных из источника данных, getview () вообще не будет вызван.

2
ответ дан Akhil 24 August 2018 в 10:11
поделиться
       public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    if (container == null) {
        View v = (LinearLayout) inflater.inflate(R.layout.tablayout, container,
               false);
       ListView lv = (ListView) v.findViewById(R.id.listview1);
  ListViewAdapter adapter = new ListViewAdapter(container.getContext(),
        android.R.layout.simple_list_item_1, R.id.textview1);
    adapter.notifyDataSetChanged();
    lv.setAdapter(adapter);
   }
  else{
     View v = (LinearLayout) inflater.inflate(R.layout.tablayout, container,
        false);
      ListView lv = (ListView) v.findViewById(R.id.listview1);
     ListViewAdapter adapter = new ListViewAdapter(container.getContext(),
        android.R.layout.simple_list_item_1, R.id.textview1);
     adapter.notifyDataSetChanged();
   lv.setAdapter(adapter);
 }
return v;
}

и переопределить метод getcount

 public int getCount(){
    return 100;
  }
0
ответ дан Nikhil Lamba 24 August 2018 в 10:11
поделиться

В настоящее время вы не предоставляете никаких данных. Если вы все еще хотите увидеть, что происходит в списке, переопределите функцию getCount ().

Я думаю, что это что-то в этом роде.

public int getCount(){
    return 1;
}

Это приведет к одному элементу в вашем списке. А также позвоните в getView (). И когда вы узнаете, как предоставить источник данных, измените getCount () на размер вашего списка. Посмотрите учебник здесь

http://www.shubhayu.com/android/listview-with-arrayadapter-and-customized-items

17
ответ дан Shubhayu 24 August 2018 в 10:11
поделиться

Когда мы создаем пользовательский массив, мы должны использовать либо

public ArrayAdapter (Context context, int textViewResourceId, T[] objects)

public ArrayAdapter (Context context, int resource, int textViewResourceId, T[] objects)

public ArrayAdapter (Context context, int textViewResourceId, List<T> objects)

public ArrayAdapter (Context context, int resource, int textViewResourceId, List<T> objects)

, если мы не используем вышеупомянутый адаптер, нам нужно переопределить метод getCount ().

7
ответ дан siva 24 August 2018 в 10:11
поделиться
Другие вопросы по тегам:

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